Maison > développement back-end > Problème PHP > Quelle est la différence entre ceci et self en php

Quelle est la différence entre ceci et self en php

王林
Libérer: 2023-03-02 15:12:01
original
6625 Les gens l'ont consulté

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.

Quelle est la différence entre ceci et self en php

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();
Copier après la connexion

Sortie du résultat :

instance
Copier après la connexion

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();
Copier après la connexion

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 "</br>";
    echo $str->dell();
    echo "</br>";
    echo $str->datesrt();
Copier après la connexion

Résultat :

public
private
protected
Copier après la connexion

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!

É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