Explication détaillée de la différence entre static et self en php

黄舟
Libérer: 2023-03-14 20:32:01
original
1513 Les gens l'ont consulté

On m'a posé cette question lors de l'entretien, mais je n'ai eu d'autre choix que d'y répondre. Je voudrais le résumer ici.

Utiliser self:: ou __CLASS__ une référence statique à la classe actuelle, selon la classe dans laquelle la méthode actuelle est définie :

Utiliser static:: n'est plus résolu comme définissant la classe actuelle. La classe dans laquelle se trouve la méthode est calculée 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.

La liaison statique est PHP 5.3.0. Une fonction ajoutée est utilisée pour référencer des classes appelées statiquement dans la portée de l'héritage

En termes simples,

Self fait référence. dans quelle classe il est écrit, et c'est cette classe qui est réellement appelée

static représente la classe utilisée, qui est la classe statique que vous écrivez dans la classe parent, puis elle. est remplacé par la sous-classe. Ce qui est utilisé est la méthode ou l'attribut de la sous-classe

<?phpclass Person{
    public static function name()
    {
        echo "111";        echo "<br />";
    }    public static function callself()
    {
        self::name();
    }    public static function callstatic()
    {
        static::name();
    }
}class Man extends Person{
    public static function name()
    {
        echo "222";        echo "<br />";
    }
}

Man::callself();  // output: 111Man::callstatic();  // output: 222?>
Copier après la connexion
.

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