Heim > Backend-Entwicklung > PHP-Tutorial > call_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

call_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

WBOY
Freigeben: 2016-09-19 09:16:31
Original
1098 Leute haben es durchsucht

PScall_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

call_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

Antwortinhalt:

PScall_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

call_user_func meldet eine Warnung, die auch auf der offiziellen PHP-Website aufgerufen wird. .

<code class="php">class Father {
    public function __construct() {
        echo "father<br>";
    }
}

class Child extends Father {
    public function say() {
        echo "hello";
    }

    static function say2() {
        echo "hello2";
    }
}

// 调用对象方法需要先实例化对象
$child = new Child;
call_user_func([$child, 'say']);

// 可以直接调用类静态方法
call_user_func(['child', 'say2']);</code>
Nach dem Login kopieren

Es ist ein falscher Weg, die Objektmethode direkt durch den Aufruf der statischen Methode der Klasse zu schreiben. Vor PHP5.5 versuchte es (anscheinend) sein Bestes, um die Anforderungen zu erfüllen, und meldete dann eine Warnung, aber nach 5.5 war es so ist ein Fehler.

Wenn Sie die Methode call_user_func verwenden, verwenden Sie die Funktion in der Klasse, daher müssen Sie sie instanziieren. Nur wenn Sie sie direkt als Methode schreiben, können Sie sie wie folgt schreiben:

<code>function develop($val){
    if($val){
        echo 'Successful';
    } else {
        echo 'Fail';
    }
}

call_user_func('develop', true);</code>
Nach dem Login kopieren

Sie sollten es so schreiben, dass Sie eine statische Methode aufrufen.
Wenn Sie eine Instanzmethode aufrufen möchten
, müssen Sie die Klasse instanziieren

Strenger Modus, achten Sie auf die PHP-Version.

Verwandte Etiketten:
php
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