


Comment former une liaison statique entre static :: et new static () en PHP
static::liaison statique tardive avec new static() en PHP
1. self, $this, __CLASS__
class A {} class B extends A{ parent::(public|protected)(静态方法|静态变量) ===> parent永远是A self::(public|protected)(静态方法|静态变量) ===> self永远是B $this->(public|protected)(非静态方法|非静态变量) ===> $this永远是B的是实例化对象 __CLASS__ ===> 永远是B } class C extends B{ parent::(public|protected)(静态方法|静态变量) ===> parent永远是B self::(public|protected)(静态方法|静态变量) ===> self永远是C $this->(public|protected)(非静态方法|非静态变量) ===> $this永远是C的是实例化对象 __CLASS__ ===> 永远是C }
2 static::
Le mot-clé static peut réaliser les fonctions suivantes :
1 Appel. une méthode statique d'une classe a un effet de liaison statique tardif ;
2 appeler une propriété statique d'une classe a un effet de liaison statique tardive
3 appeler une méthode non statique d'une classe ; n'a pas d'effet de liaison statique tardif ;
4 Remarque : les propriétés non statiques ne peuvent pas être appelées ;
class A { private static function foo() { echo "A success!\n"; } public function test() { $this->foo(); } } class B extends A { } class C extends A { private static function foo() { echo "C success!\n"; } } $b = new B(); $b->test();//A success! $c = new C(); $c->test();//A success!
class A { private static function foo() { echo "A success!\n"; } public function test() { static::foo(); } } class B extends A { } class C extends A { private static function foo() { echo "C success!\n"; } } $b = new B(); $b->test();//A success! $c = new C(); $c->test();//A无法调用C里的私有foo方法 //将C的foo改成非private(public|protected)就可以解决 class A { private static function foo() { echo "A success!\n"; } public function test() { static::foo(); } } class B extends A { } class C extends A { public static function foo() { echo "C success!\n"; } } $b = new B(); $b->test();//A success! $c = new C(); $c->test();//C success!
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(); A =>A::foo()的结果 C =>parent::foo()能走到A的foo,里面static::who找C::who C =>self::foo()能走到B的foo,B继承A,走到A的foo,里面static::who找C::who class A { protected static function foo() { static::who(); } protected static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); } protected static function who() { echo __CLASS__."\n"; } } class C extends B { protected static function who() { echo __CLASS__."\n"; } } C::test(); //A C C,解释同上 class A { public static function foo() { static::who(); } private static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); // self::foo(); } private static function who() { echo __CLASS__."\n"; } } class C extends B { private static function who() { echo __CLASS__."\n"; } } C::test(); //A =>A::foo()的结果 //报错 A不可C的私有方法who => parent::foo()能走到A的foo,里面static::who找C::who,C的who只能在C里调用,不能在A里调用 //报错 A不可C的私有方法who => self::foo()能走到B的foo,B继承A,走到A的foo,里面static::who找C::who,C的who只能在C里调用,不能在A里调用
3. Tutoriel recommandé : "Tutoriel vidéo PHP
》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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Liaison statique PHPLate : conseils techniques qui rompent avec la pensée de programmation traditionnelle. Introduction : La manière traditionnelle de penser en programmation consiste généralement à déterminer l'appel des méthodes et des propriétés au moment de la compilation, mais dans certains cas où un appel dynamique est requis, cette approche semble restrictive et déraisonnable. Soyez flexible. PHP fournit une fonctionnalité puissante, « Liaison statique tardive », qui brise la pensée de programmation traditionnelle et facilite la liaison dynamique des méthodes et des propriétés. Cet article présente L à travers des exemples de code spécifiques.

Oui! Lorsque le compilateur connaît l'objet à utiliser pour l'exécution de la méthode, il peut lier statiquement la référence à l'objet. Par exemple, les variables statiques, les variables privées et les variables finales utilisent la liaison statique. Si la reconnaissance d'objets est requise au moment de l'exécution, utilisez la liaison dynamique. Le remplacement de méthode est un cas de liaison dynamique. La surcharge de méthode est un cas de liaison statique.

Créez une structure de code efficace et évolutive grâce à la liaison statique PHPLate Résumé : Dans les grands projets, l'évolutivité et l'efficacité de la structure du code sont très importantes. La liaison statique PHPLate est une fonctionnalité puissante qui nous aide à créer un code facile à maintenir et à étendre. Cet article présentera le concept de liaison statique PHPLate et utilisera des exemples de code spécifiques pour illustrer comment l'utiliser pour créer des structures de code efficaces et évolutives. Introduction : À mesure que les activités de l'entreprise continuent de se développer et de se développer, l'échelle du projet augmente également progressivement. De cette façon

Comment utiliser la liaison statique PHPLate pour améliorer la réutilisabilité du code Introduction : Dans le développement PHP, la réutilisation du code est l'un des facteurs clés pour améliorer l'efficacité et la maintenabilité du développement. PHP fournit une variété de techniques pour parvenir à la réutilisabilité du code, l'une des techniques importantes étant l'utilisation de la liaison statique tardive. Cet article présentera le concept, les avantages et l'application de la liaison statique tardive dans le développement réel. 1. Présentation de la liaison statique tardive La liaison statique tardive fait référence à la détermination dynamique de la méthode appelante de méthodes ou de propriétés statiques en fonction du contexte au moment de l'appel. exister

Déverrouiller les secrets techniques de la liaison statique PHPLate nécessite des exemples de code spécifiques. Ces dernières années, PHP, en tant que langage de script côté serveur couramment utilisé, a été bien accueilli par les développeurs. Avec le développement du langage PHP, de plus en plus de techniques et de fonctionnalités de programmation ont été ajoutées à PHP, dont la liaison statique tardive. Une liaison statique tardive signifie que dans une relation d'héritage, les sous-classes peuvent remplacer et appeler des méthodes et propriétés statiques de la classe parent. Cette relation d'héritage peut grandement améliorer la flexibilité et l'évolutivité du code. Alors laisse-moi

La liaison est un mécanisme qui crée un lien entre un appel de méthode et l’implémentation réelle de la méthode. Selon le concept de polymorphisme en Java, les objets peuvent avoir de nombreuses formes différentes. Le formulaire objet peut être résolu au moment de la compilation et de l'exécution. Si le lien entre l'invocation de la méthode et l'implémentation de la méthode est résolu au moment de la compilation, nous l'appelons liaison statique ; s'il est résolu au moment de l'exécution, nous l'appelons liaison dynamique. La liaison dynamique utilise des objets pour résoudre les liaisons, tandis que la liaison statique utilise les types de classes et de champs. Vieux monsieur. Non. Liaison statique de clé Liaison dynamique 1 Résolution de base au moment de la compilation Résolu au moment de l'exécution 2 Mécanisme de résolution La liaison statique utilise le type de classe et de champ La liaison dynamique utilise des objets pour résoudre la liaison 3 Un exemple de surcharge est un exemple de liaison statique Surcharge de méthode L'écriture est un exemple de liaison dynamique 4. Le type de méthode est privé,

Liaison statique PHPLate : un outil technique pour optimiser l'héritage de code Introduction : dans la programmation orientée objet, l'héritage est une technologie courante de réutilisation de code. Grâce à l'héritage, nous pouvons créer une nouvelle classe et hériter des propriétés et méthodes d'une classe existante (appelée classe parent ou classe de base). De cette façon, nous pouvons réduire la duplication de code et améliorer la maintenabilité et l’évolutivité du code. Cependant, en héritage, nous rencontrons souvent un problème : lors de l'appel de la méthode statique de la classe parent dans la sous-classe, parce que la liaison de la méthode statique est terminée au moment de la compilation, la sous-classe appelle la méthode statique.
