Maison >développement back-end >tutoriel php >Quelle est la différence entre « self » et « $this » dans la programmation orientée objet PHP 5 ?

Quelle est la différence entre « self » et « $this » dans la programmation orientée objet PHP 5 ?

DDD
DDDoriginal
2024-12-17 16:26:17362parcourir

What's the Difference Between `self` and `$this` in PHP 5 Object-Oriented Programming?

Comprendre la différence entre « self » et « $this » en PHP 5

Lorsque vous travaillez avec de la programmation orientée objet en PHP 5, il est crucial de saisir efficacement les distinctions entre l'utilisation de « soi » et de « $this ». Les deux sont des références mais servent des objectifs distincts dans l'interaction avec les objets.

'$this' - Se référant à l'objet actuel

Utilisez '$this' pour accéder au membre non statique variables et méthodes dans l’instance actuelle de votre objet. Il fournit un pointeur direct vers l’objet spécifique instancié. La syntaxe '$this->member' vous permet d'accéder à des variables non statiques, tandis que '$this->method()' invoque des méthodes d'instance.

Exemple :

class Person {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}

Dans cet exemple, '$this' est utilisé pour accéder à la propriété 'name' et à la méthode 'getName()' dans 'Person'. object.

'self' - Se référant à la classe actuelle

En revanche, 'self' est utilisé pour accéder aux membres et méthodes statiques au sein de la classe actuelle. Il fait référence à la classe elle-même et non à une instance spécifique de la classe. La syntaxe 'self::$static_member' permet d'accéder aux variables statiques, tandis que 'self::static_method()' appelle les méthodes de classe.

Exemple :

class StaticCounter {
    private static $count = 0;

    public static function incrementCount() {
        self::$count++;
    }

    public static function getCount() {
        return self::$count;
    }
}

Ici, 'self' est utilisé pour accéder à la variable statique 'count' et à la méthode de classe 'incrementCount()' dans 'StaticCounter'. class.

Conclusion

Comprendre l'utilisation appropriée de 'self' et '$this' est vital pour une programmation orientée objet efficace en PHP 5. '$this' cible les membres non statiques de l'objet actuel, tandis que 'self' se concentre sur les membres statiques de la classe actuelle. En maîtrisant ces distinctions, vous pouvez améliorer la clarté et les fonctionnalités de votre code lorsque vous travaillez avec des classes et des objets.

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!

Déclaration:
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