Maison > développement back-end > Problème PHP > Introduction détaillée à la différence et à l'utilisation de soi et ceci en php

Introduction détaillée à la différence et à l'utilisation de soi et ceci en php

王林
Libérer: 2023-02-23 17:18:02
original
3967 Les gens l'ont consulté

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";    
?>
Copier après la connexion

 

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


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!

É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