La programmation pour les objets utilisera certains de ses propres opérateurs, tels que ->, ce symbole est utilisé Accédez à son propres membres dans un objet. L'autre est l'opérateur de résolution de plage : deux deux-points connectés ensemble (::). Cette notation est utilisée pour accéder aux membres d'une classe (et non d'un objet). L'utilisation est la suivante :
ClassName::methodName(); ClassName::propertyName;
Cette structure peut être utilisée à deux endroits :
1 Lors de l'utilisation d'une classe, la classe parent et la sous-classe ont la même Utilisation. ceci pour éviter toute confusion lors de l'utilisation des propriétés et des méthodes .
2. En dehors de la classe, utilisez cet opérateur pour accéder aux membres de la classe sans créer un objet.
Tout comme nous pouvons utiliser $this dans une classe pour référencer une instance de l'objet actuel, le mot-clé self est utilisé comme référence à la classe actuelle.
class SomeClass { function construct() { self::do(); } protected function do(){ echo "done!"; } }
Dans ce code, self::do() déclenchera la méthode do() de la classe actuelle.
Pour référencer un membre de la classe parent, vous pouvez utiliser le mot-clé parent et l'opérateur de résolution de plage pour référencer :
class SomeOtherClass extends SomeClass { function construct() { parent::do(); } }
Dans la plupart des cas, nous utilisons l'opérateur de résolution de plage pour accéder Méthode remplacée. Nous pouvons également l'utiliser pour accéder aux membres statiques et constants.
Remarque : comme les propriétés statiques, les constantes de classe sont accessibles par toutes les instances de la classe (ou ses sous-classes). Mais sa valeur ne peut pas être modifiée. Les constantes de classe sont créées à l'aide du mot-clé const , suivi du nom de la constante (sans le signe dollar). Les constantes ne sont pas accessibles via des objets, tels que $obj->PI ou $obj::PI, mais nous pouvons utiliser ClassName::CONSTANT_NAME n'importe où. Vous pouvez également utiliser self::CONSTANT_NAME dans les méthodes d'une classe.
Exemple de programme :
<?php class Rectangle { protected static $_count = 0; protected $width; protected $height; function construct($width, $height) { $this->width = $width; $this->height = $height; self::$_count++; echo "已成功创建".self::$_count."个Rectangle对象<br>"; } function destruct() { echo "销毁一个Rectangle对象<br>"; } function getArea() { echo "Rectangle面积是:".($this->width * $this->height."<br>"); } function getConunt() { return self::$_count; } } class Square extends Rectangle { function construct($side) { $this->width = $side; $this->height = $side; parent::$_count++; echo "已成功创建".parent::$_count."个Rectangle(Square)对象<br>"; } } $rec = new Rectangle(10, 5); $rec->getArea(); $square = new Square(10); $square->getArea(); ?>
Résultat d'exécution :
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!