PHP prend en charge le concept de fonctions variadiques. Cela signifie que s'il y a des parenthèses après un nom de variable, PHP recherchera une fonction portant le même nom que la valeur de la variable et tentera de l'exécuter. Cet article a pour objectif de vous présenter un résumé de l'utilisation des fonctions variables en PHP. Les amis intéressés devraient y jeter un œil ensemble
Fonctions variables
. PHP prend en charge le concept de fonctions variables. Cela signifie que s'il y a des parenthèses après un nom de variable, PHP recherchera une fonction portant le même nom que la valeur de la variable et tentera de l'exécuter. Les fonctions variables peuvent être utilisées pour implémenter certains objectifs, notamment les fonctions de rappel et les tables de fonctions.
Les fonctions variables ne peuvent pas être utilisées dans les constructions de langage telles que echo(), print(), unset(), isset(), empty(), include(), require() et des instructions similaires. Vous devez utiliser votre propre fonction wrapper pour utiliser ces structures comme fonctions variables.
Écrivez d'abord mon pseudocode.
protected $model; public function __construct(Category $category) { $this->model = $category; } public function getLists($request, $isPage = 'get', $order = 'created_at', $sort = 'desc') { return $this->model->orderBy($order, $sort)->$isPage(); }
Dans getLists, il y a un paramètre $isPage. L'intention initiale est de transmettre pour obtenir toutes les données et de paginer pour paginer. Après avoir fini d’écrire, j’ai senti que quelque chose n’allait pas. Dans notre manière habituelle d'écrire, la recherche de toutes les données $this->model->orderBy($order, $sort)->get();
est comme ça, je n'ai jamais vu utiliser des variables pour remplacer get(). En fonctionnement réel, le programme s'exécute normalement. Puis posé des questions sur cette méthode d'écriture dans le forum. Ensuite, nous présenterons un concept, « Fonction variable ».
Qu'est-ce qu'une fonction variable ?
PHP prend en charge le concept de fonctions variadiques. Cela signifie que s'il y a des parenthèses après un nom de variable, PHP recherchera une fonction portant le même nom que la valeur de la variable et tentera de l'exécuter.
Après avoir compris ce concept, la procédure ci-dessus aura du sens. Lorsque le programme est en cours d'exécution, remplacez $isPage par get et il y a une parenthèse après $isPage, le programme recherchera alors une fonction du même nom. Continuez ensuite l'exécution.
Exemple :
<?php function foo() { echo "In foo()<br />\n"; } function bar($arg = '') { echo "In bar(); argument was '$arg'.<br />\n"; } $func = 'foo'; $func(); // 执行 foo(); 命令行中输出:In foo()<br /> $func = 'bar'; $func('test'); // 执行 bar();命令行中输出:In bar(); argument was 'test'.<br />
Syntaxe de fonction variable pour appeler une méthode d'un objet.
<?phpclass Foo { function Variable() { $name = 'Bar'; $this->$name(); // This calls the Bar() method } function Bar() { echo "This is Bar"; } } $foo = new Foo(); $funcname = "Variable"; $foo->$funcname(); // This calls $foo->Variable() // 命令行执行输出: This is Bar
Lors de l'appel de méthodes statiques, les appels de fonction ont priorité sur les propriétés statiques. Exemples de méthodes variables et de propriétés statiques.
<?php class Foo { static $variable = 'static property'; static function Variable() { echo 'Method Variable called'; } } echo Foo::$variable; // This prints 'static property'. It does need a $variable in this scope. $variable = "Variable"; Foo::$variable(); // This calls $foo->Variable() reading $variable in this scope.
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois !
Recommandations associées :
À propos du résumé des feuilles de triche dans les chaînes PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!