Maison > Questions et réponses > le corps du texte
Le code est le suivant :
<?php
class Demo
{
public function testing()
{
echo "testing\n";
}
}
Demo::testing();
Sortie d'exécution php7.0 :
$ php demo.php
testing
Sortie d'exécution php5.6
$ php demo.php
PHP Strict Standards: Non-static method Demo::testing() should not be called statically in /home/runner/Code/funny/demo.php on line 11
testing
Il existe aussi ce genre d'opération ?? Quel est le principe ??
大家讲道理2017-06-10 09:49:28
http://www.laruence.com/2012/...
Hahaha, merci à tous pour vos réponses. Pour les raisons spécifiques, veuillez lire l'article de frère Bird ci-dessus
.高洛峰2017-06-10 09:49:28
Si une classe inférieure à la version 5.6 appelle directement des méthodes et des attributs sans instanciation, les méthodes et les attributs doivent être des méthodes statiques, c'est-à-dire que si la classe Demo appelle directement la méthode de test, le test doit être public static function testing() { }. Sinon, une erreur sera signalée.
Je ne sais pas s'il n'est pas nécessaire de déclarer quoi que ce soit au-dessus de 7,0
扔个三星炸死你2017-06-10 09:49:28
Je l'ai vu, mais php-cli peut l'exécuter, mais php-fpm ne le peut toujours pas
Deprecated: Non-static method Demo::testing() should not be called statically in test.php on line 11
testing
習慣沉默2017-06-10 09:49:28
php7.0 peut être écrit comme ceci, mais php5.6 ne peut certainement pas être écrit comme self::testing
.学习ing2017-06-10 09:49:28
On peut considérer que la mise en œuvre de PHP n'est pas rigoureuse.
Si $this n'est pas utilisé dans la méthode non statique, vous pouvez utiliser :: pour l'appeler.