Maison > Article > développement back-end > Exemples de code d'appels non renvoyés et d'appels renvoyés en PHP
Cet article vous apporte des exemples de code sur les appels non transférés et les transferts d'appels en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Accès statique aux membres d'une classe :
1. Appels non transférés
1) Effacer le nom de la classe (A::funcA())
1)self:: 2)parent:: 3)static:: 4)forward_static_call() 5)get_called_class()Remarque :
"Liaison tardive" signifie que static:: n'est plus analysé dans la classe dans laquelle la méthode actuelle est définie, mais in Calculé pendant l'exécution réelle. Elle peut également être appelée « liaison statique » car elle peut être utilisée pour (mais sans s’y limiter) des appels à des méthodes statiques.
<?php class A { public static function foo() { static::who(); } public static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); } public static function who() { echo __CLASS__."\n"; } } class C extends B { public static function who() { echo __CLASS__."\n"; } } C::test(); ?>Remarque :
A C CDans un environnement non statique, la classe appelée est la classe à laquelle appartient l'instance d'objet. Puisque $this-> tentera d'appeler la méthode privée dans la même portée, static:: peut donner des résultats différents. Une autre différence est que static:: ne peut être utilisé qu'avec des propriétés statiques.
<?php class A{ protected $value = "A value"; public function printValue(){ echo $this->value; } } class B extends A{ protected $value = "B value"; } $app = new B(); $app->printValue();
运行结果:B value
<?php class A{ //只有将属性定义为静态的才能使用self::进行调用 static protected $value = "A static value "; public function printValue(){ echo self::$value; } } class B extends A{ static protected $value = "B static value"; } $app = new B(); $app->printValue();
运行结果:A static value
<?php class A{ static protected $value = "A static value "; } class B extends A{ public function printValue(){ echo self::$value; } } $app = new B(); $app->printValue();
运行结果:A static valueRecommandations associées :
Comment implémenter la fonction de saut de page en PHP ? (Exemple de balise de fonction)
Comment implémenter le menu déroulant PHP et les colonnes multi-niveaux ? (Test de code réel)Le code qui combine php et html pour télécharger des fichiers image sur le serveur
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!