Maison > Article > développement back-end > fonction variable php
Cet article présente principalement les fonctions variables de PHP, qui ont une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Laissez-moi. é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 de $isPage
. L'intention initiale est de transmettre get
pour obtenir toutes les données, et paginate
de paginer. Après avoir fini d’écrire, j’ai senti que quelque chose n’allait pas. Dans notre manière habituelle d'écrire, rechercher 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 ».
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
, alors le programme recherchera 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.
<?php class 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 représente 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 faire attention au site Web PHP chinois !
Recommandations associées :
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!