Maison > développement back-end > tutoriel php > Explication détaillée de la liaison statique retardée PHP static

Explication détaillée de la liaison statique retardée PHP static

小云云
Libérer: 2023-03-22 10:02:01
original
1350 Les gens l'ont consulté

Dans l'ancienne version de PHP, return new self() est utilisé pour renvoyer une instance de cette classe ; mais cette méthode présente un gros inconvénient, c'est-à-dire que self fait référence au contexte d'analyse plutôt qu'au contexte d'appel. Cet article partage principalement avec vous l'explication détaillée de la liaison statique retardée PHP. J'espère qu'il pourra vous aider.

abstract class father { 

    public static function create() { 

        return new self(); 

    } 
} 
class son1 extends father { 
} 
son1::create();
Copier après la connexion

C'est-à-dire que la sous-classe appelant la méthode create() dans le code ci-dessus renvoie en fait une instance de la classe parent, car self pointe vers l'endroit où elle se trouve défini plutôt que l'endroit où il est appelé. Et la classe père est une classe abstraite, ce code signalera une erreur fatale.

La liaison statique retardée a été introduite après PHP 5.3, en utilisant le mot-clé static. <code> <br/>

abstract class father { 

    public static function create() { 

        return new static(); 

    } 
} 
class son1 extends father { 
} 
son1::create();
Copier après la connexion

Changer self en static peut s'exécuter normalement, car static pointe vers la classe appelée plutôt que vers la classe définie.

Nous pouvons également utiliser static comme identifiant d'une méthode statique, même lorsqu'elle est appelée depuis un contexte non statique. J'écrirai à ce sujet plus tard.

Recommandations associées :

Implémentation PHP de liaison statique tardive

Explication détaillée des exemples de liaison statique tardive php

Qu'est-ce que la liaison statique retardée PHP ? Explication détaillée de l'exemple de code de liaison statique retardée

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal