La différence entre this et self en PHP est la suivante : self appelle la classe, tandis que $this appelle l'objet instancié. self peut accéder aux propriétés statiques et aux méthodes statiques de cette classe, ainsi qu'aux constantes définies par const, et cela peut appeler des méthodes et des propriétés de cette classe.
Différence :
self appelle la classe, tandis que $this appelle l'objet instancié.
(Tutoriel recommandé :tutoriel php)
Expliquons-le en détail ci-dessous :
1. les propriétés et les méthodes statiques peuvent accéder aux propriétés statiques et aux méthodes statiques de la classe parent. Lorsque vous utilisez self, vous n'avez pas besoin de l'instancier.
Exemple de code :
class self_test { static $instance; public function __construct(){ self::$instance = 'instance';//静态属性只能通过self来访问 } public function tank(){ return self::$instance;//访问静态属性 } } $str = new self_test(); echo $str->tank();
Sortie du résultat :
instance
2 self peut accéder aux constantes définies par const
Exemple de code :
class self_test { const NAME = 'tancy'; public function tank(){ return self::NAME; } } $str = new self_test(); echo $str->tank();
3. Cela peut appeler des méthodes et des attributs dans cette classe, ou des méthodes et des attributs appelables dans la classe parente. En plus des attributs statiques et des constantes const, cela peut essentiellement être appelé.
Exemple de code :
class self_test { public $public; private $private; protected $protected; public function __construct(){ $this->public = 'public'; $this->private = 'private'; $this->protected = 'protected'; } public function tank(){ return $this->public; } public function dell(){ return $this->private; } public function datesrt(){ return $this->protected; } } $str = new self_test(); echo $str->tank(); echo ""; echo $str->dell(); echo ""; echo $str->datesrt();
Résultat :
public private protected
Résumé : self est le nom de la classe qui fait référence à la classe statique, et $this est le nom de l'instance qui fait référence à la classe non statique.
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!