PHP-Variablenfunktion

不言
Freigeben: 2023-04-02 18:42:01
Original
2153 Leute haben es durchsucht

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.

PHP-Variablenfunktionen

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();
    }
Nach dem Login kopieren

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“.

Was ist eine variable Funktion?

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 = &#39;&#39;) {
    echo "In bar(); argument was &#39;$arg&#39;.<br />\n";
}
$func = &#39;foo&#39;;
$func();        //  执行 foo(); 命令行中输出:In foo()<br />

$func = &#39;bar&#39;;
$func(&#39;test&#39;);   // 执行 bar();命令行中输出:In bar(); argument was &#39;test&#39;.<br />
Nach dem Login kopieren
Syntax einer Variablenfunktion zum Aufrufen von Methoden eines Objekts.
<?php
class Foo
{
    function Variable()
    {
        $name = &#39;Bar&#39;;
        $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
Nach dem Login kopieren
Beim Aufruf statischer Methoden haben Funktionsaufrufe Vorrang vor statischen Eigenschaften. Beispiele für variable Methoden und statische Eigenschaften.
<?php
class Foo
{
    static $variable = &#39;static property&#39;;
    static function Variable()
    {
        echo &#39;Method Variable called&#39;;
    }
}

echo Foo::$variable; // This prints &#39;static property&#39;. It does need a $variable in this scope.
$variable = "Variable";
Foo::$variable();  // This calls $foo->Variable() reading $variable in this scope.
Nach dem Login kopieren

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:

PHP-Schnellsortierungscode

Das obige ist der detaillierte Inhalt vonPHP-Variablenfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage