Dieser Artikel stellt hauptsächlich die variablen Funktionen von PHP vor, die einen bestimmten Referenzwert haben. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.
Lassen Sie mich schreibe zuerst meinen 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(); }
In getLists
gibt es einen Parameter von $isPage
. Die ursprüngliche Absicht besteht darin, get
zu übergeben, um alle Daten abzurufen, und paginate
zum Paginieren. Nachdem ich mit dem Schreiben fertig war, hatte ich das Gefühl, dass etwas nicht stimmte. In unserer üblichen Schreibweise ist die Suche nach allen Daten $this->model->orderBy($order, $sort)->get();
so, dass ich noch nie gesehen habe, dass Variablen zum Ersetzen von get()
verwendet werden. Im tatsächlichen Betrieb wird das Programm normal ausgeführt. Habe dann im Forum nach dieser Schreibmethode gefragt. Als nächstes stellen wir ein Konzept vor: „Variablenfunktion“.
PHP unterstützt das Konzept variadischer Funktionen. Das heißt, wenn nach einem Variablennamen Klammern stehen, sucht PHP nach einer Funktion mit demselben Namen wie der Variablenwert und versucht, diese auszuführen.
Nachdem Sie dieses Konzept verstanden haben, wird das oben beschriebene Verfahren Sinn ergeben. Wenn das Programm ausgeführt wird, ersetzen Sie $isPage
durch get
und nach $isPage
steht eine Klammer, dann sucht das Programm nach einer Funktion mit demselben Namen. Fahren Sie dann mit der Ausführung fort.
Beispiel:
<?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 />
Syntax einer Variablenfunktion zum Aufrufen von Methoden eines Objekts.
<?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
Beim Aufruf statischer Methoden haben Funktionsaufrufe Vorrang vor statischen Eigenschaften. Beispiele für variable Methoden und statische Eigenschaften.
<?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.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonPHP-Variablenfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!