Maison >développement back-end >Problème PHP >Introduction détaillée à la différence et à l'utilisation de soi et ceci en php
La différence entre this et self les mots-clés en PHP :
1 self représente la classe, $this représente l'objet
2. . Can Là où $this est utilisé, self doit être utilisé. Là où self peut être utilisé, $this
ne peut pas être utilisé 3. $this ne peut pas être utilisé dans les méthodes statiques accessibles par les classes.
Utilisation des mots-clés this et self en PHP :
self est le nom de la classe qui fait référence à la classe statique, et $this fait référence à l'instance de le nom de classe non statique.
Les propriétés et méthodes statiques ne peuvent accéder qu'aux propriétés et méthodes statiques, et les propriétés et méthodes non statiques ne sont pas accessibles par classe.
Parce que lorsque des propriétés et des méthodes statiques sont créées, il se peut qu'aucune instance de cette classe ne puisse être appelée.
Les attributs statiques n'ont qu'une seule copie en mémoire et sont partagés par toutes les instances.
Utilisez le mot-clé self::
pour accéder aux membres statiques de la classe actuelle.
Toutes les instances d'une classe partagent des propriétés statiques dans la classe.
En d'autres termes, même s'il y a plusieurs instances dans la mémoire, il n'y a qu'une seule copie des attributs statiques.
Dans l'exemple suivant, un attribut counter $count est défini, avec des modifications privées et statiques.
De cette façon, le monde extérieur ne peut pas accéder directement à l'attribut $count. Suite à l'exécution du programme, nous constatons également que plusieurs instances utilisent le même attribut statique $count.
<?php class user { private static $count = 0 ; //记录所有用户的登录情况. public function __construct() { self::$count = self::$count + 1; } public function getCount() { return self::$count; } public function __destruct() { self::$count = self::$count - 1; } } $user1 = new user(); $user2 = new user(); $user3 = new user(); echo "now here have " . $user1->getCount() . " user"; echo "<br />"; unset($user3); echo "now here have " . $user1->getCount() . " user"; ?>
Les propriétés statiques sont directement appelées
Les propriétés statiques peuvent être utilisées directement sans instanciation, avant la création de la classe. utilisé directement. La méthode d'utilisation de
est : nom de classe :: nom d'attribut statique
<?php class Math { public static $pi = 3.14; } // 求一个半径3的园的面积。 $r = 3; echo "半径是 $r 的面积是<br />"; echo Math::$pi * $r * $r; echo "<br /><br />"; //这里我觉得 3.14 不够精确,我把它设置的更精确。 Math::$pi = 3.141592653589793; echo "半径是 $r 的面积是<br />"; echo Math::$pi * $r * $r; ?>
La classe n'est pas créée et les attributs statiques peuvent être utilisés directement.
Méthodes statiques
Les méthodes statiques peuvent être utilisées directement sans que la classe soit instanciée.
La méthode utilisée est class name::static method name
Pour plus de contenu connexe, veuillez visiter le site Web PHP chinois : Tutoriel vidéo 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!