L'exemple de cet article décrit l'utilisation de la liaison statique retardée PHP Static. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
PHP5.3 a introduit la liaison statique retardée. Quel problème est-il destiné à résoudre ? Un problème de longue date dans le modèle d'héritage de PHP est qu'il est difficile de référencer l'état final d'une classe étendue dans la classe parent. Regardons un exemple.
class A { public static function echoClass(){ echo __CLASS__; } public static function test(){ self::echoClass(); } } class B extends A { public static function echoClass() { echo __CLASS__; } } B::test(); //输出A
Une nouvelle fonctionnalité a été ajoutée à PHP5.3 : la liaison statique retardée, ce qui signifie que les expressions ou variables initialement fixées lors de la phase de définition sont modifiées pour être déterminées lors de la phase d'exécution, comme quand un enfant Lorsqu'une classe hérite de l'expression statique de la classe parent, sa valeur ne peut pas être modifiée Parfois, vous ne voulez pas voir cette situation.
L'exemple suivant résout le problème soulevé ci-dessus :
class A { public static function echoClass(){ echo __CLASS__; } public static function test() { static::echoClass(); } } class B extends A { public static function echoClass(){ echo __CLASS__; } } B::test(); //输出B
static::echoClass(); à la ligne 8 définit une méthode de liaison statique retardée jusqu'à ce que B appelle test La méthode initialement définie pour être exécuté n'est exécuté que lorsqu'il est exécuté.
J'espère que cet article sera utile à tout le monde dans la programmation PHP.
Pour plus d'articles liés à l'analyse de l'utilisation des liaisons statiques retardées PHP Static, veuillez faire attention au site Web chinois de PHP !