Comment appeler la fonction appelable en PHP?


PHPFan

J'ai un tableau intitulé $post_data. Je veux passer ce tableau à une fonction comme argument. Avec ce tableau, je dois passer un autre argument, le 'nom de fonction' appelable comme deuxième argument dans un appel de fonction.

Je ne comprends pas comment y parvenir.

Voici le corps de la fonction qui doit être appelé:

//Following is the function to be called
function walk_recursive_remove(array $array, callable $callback) {
  foreach ($array as $k => $v) {
    if (is_array($v)) {
      $array[$k] = walk_recursive_remove($v, $callback);
    } else {
      if ($callback($v, $k)) {
        unset($array[$k]);
      }
    }
  }
  return $array;
}

//Following is the callback function to be called

function unset_null_children($value, $key){
  return $value == NULL ? true : false;
}

The function call that I tried is as follows :
//Call to the function walk_recursive_remove
$result = walk_recursive_remove($post_data, unset_null_children);

Quelqu'un peut-il m'aider à corriger l'erreur que je fais en appelant la fonction?

Merci d'avance.

Vlad Bota

Tout d'abord, la façon d'appeler une fonction comme vous le souhaitez est d'utiliser

call_user_func()

ou

call_user_func_array()

Dans votre cas, parce que vous voulez envoyer des paramètres, vous souhaitez utiliser le second, call_user_func_array().

Vous pouvez en savoir plus à ce sujet sur http://php.net/manual/en/language.types.callable.php .

En attendant, j'ai simplifié un peu votre exemple et créé un petit exemple.

function walk_recursive_remove(array $array, callable $callback) {
    foreach($array as $k => $v){
        call_user_func_array($callback,array($k,$v));
    }
}

//Following is the callback function to be called

function unset_null_children($key, $value){
  echo 'the key : '.$key.' | the value : '.$value ;
}

//Call to the function walk_recursive_remove
$post_data = array('this_is_a_key' => 'this_is_a_value');
$result = walk_recursive_remove($post_data, 'unset_null_children');

Articles connexes


Comment appeler une fonction en PHP

marque J'ai suivi quelques cours sur la création d'un objet de session, ce qui a bien fonctionné.Si je place le code complet sur un fichier PHP, tout fonctionne très bien! Ce que je voudrais faire est de placer ceci dans un autre module (fichier PHP) et d'util

Simplifier comment appeler la fonction PHP

benkmad J'ai du code pour remplacer un mot si ce mot est contenu dans le tableau. Le code fonctionne mais il y a un problème d'abord, il est trop long et je ne peux pas répéter le code (appelez le résultat deux fois ou plus dans la page). Je veux simplifier co

Comment appeler la fonction personnelle en tapuscrit

Kreedz Zhen J'écris le tapuscrit pour le langage côté client, je viens de commencer à apprendre le tapuscrit il y a quelques jours, mais il y a un problème qui me rend fou. Je ne peux pas utiliser la fonction à l'intérieur de cette classe. Voici le tapuscrit :

Comment appeler la fonction Python en Java

MedDiv Voici mon code Python: class myPythonClass: def table(nb): i = 0 while i < 10: print(i + 1, "*", nb, "=", (i + 1) * nb) i += 1 J'ai besoin de savoir comment l'appeler en utilisant PythonInterpreter. mhawke

Appeler la fonction Javascript en utilisant PHP

Adrian est-il possible d'appeler cette fonction pour imprimer un document en utilisant PHP? Voici mon code les gars. <html> <head> <script language="javascript"> function Clickheretoprint() { var disp_setting="toolbar=yes,location=no,directories=ye

Appeler la fonction js en php

AFV Besoin d'aide ici. J'ai une page principale index.php avec une simple fonction js, disons function1 () qui en cliquant, ouvre une page, disons test.php comme une fenêtre pop-up, qui inclut le contenu d'une autre page p1.php. Je dois le conditionner de sort

La fonction appelable par commande se fait appeler deux fois

Ev_Hyper L'un des plus petits projets nécessitait des changements fonctionnels ... j'ai donc décidé de mettre à jour la version de la bibliothèque Gjallarhorn.Bindable.Wpf également. En fait, je viens d'ajouter un paramètre supplémentaire là où il était nécess

Comment appeler la fonction

apprenant J'essaie d'invoquer une fonction à partir de l'invite de commande, mais je ne trouve pas la bonne façon de l'invoquer. Voici mon script : echo "Hello World!" test { echo "Sample message" } J'ai essayé les méthodes ci-dessous : sh-4.2$ main.sh