Maison >développement back-end >tutoriel php >L'utilisation de soi et cela en php

L'utilisation de soi et cela en php

墨辰丷
墨辰丷original
2018-05-09 14:38:363147parcourir

Les fonctions de self et de $this sont très similaires, mais elles sont différentes. $this ne peut pas faire référence à des membres statiques et à des constantes. self ressemble plus à la classe elle-même, et $this ressemble plus à l'instance elle-même.

1. self

1. self peut accéder aux propriétés statiques et aux méthodes statiques de cette classe et peut accéder Propriétés statiques et méthodes statiques dans la classe parent. Lorsque vous utilisez self, vous n'avez pas besoin d'instancier

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;instance&#39;; //静态属性只能通过self来访问  
      }  
  
      public function tank(){  
             return self::$instance;  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>

Sortie de page : instance

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;dell&#39;; //静态属性只能通过self来访问  
      }  
  
      static public function pentium(){  
             return self::$instance;  //静态方法也可以继续访问静态变量,访问时需  
要加$  
      }  
  
      public function tank(){  
             return self::pentium();  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>

Sortie de page : dell

2.self Vous pouvez accéder aux constantes définies par const

<?php  
class selfStuP{  
      const NAME = &#39;tancy&#39;;  
  
      public function tank(){  
             return self::NAME;  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>
Sortie de la page : tancy

II.this

1.this peut appeler des méthodes et des attributs dans cette classe, et peut également appeler des méthodes et des attributs réglables dans la classe parent. On peut dire qu'à l'exception des constantes statiques et const, pratiquement tout le reste peut être contacté. en utilisant ceci

<?php  
  
        class thisStu{  
              public $public;  
              private $private;  
              protected $protected;  
  
              public function __construct(){  
                     $this->public =  &#39;public&#39;;  
                     $this->private = &#39;private&#39;;  
                     $this->protected = &#39;protected&#39;;  
              }  
  
              public function tank(){  
                     return $this->public;  
              }  
  
              public function dell(){  
                     return $this->private;  
              }  
  
              public function datesrt(){  
                     return $this->protected;  
              }  
  
        }  
  
        $str = new thisStu();  
        echo $str->tank();  
        echo "\n";  
        echo $str->dell();  
        echo "\n";  
        echo $str->datesrt();  
        echo "\n";  
  
?>
Sortie de la page :

publique

privée
protégée

Résumé :

En une phrase, self est le nom de classe qui fait référence à la classe statique, et $this est le nom d'instance qui fait référence à la classe non statique.

Recommandations associées :

Les différences entre self, static et $this en PHP et explication détaillée de la liaison statique tardive

Explication détaillée de l'utilisation de $this et des qualificatifs d'accès en PHP

Explication détaillée de la différence entre self et $this en PHP

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