Maison  >  Article  >  développement back-end  >  Exemple détaillé d'utilisation de l'opérateur de résolution de plage en PHP

Exemple détaillé d'utilisation de l'opérateur de résolution de plage en PHP

黄舟
黄舟original
2017-07-02 11:42:181086parcourir

La programmation

Orientée objet utilisera certains de ses propres opérateurs, tels que ->, ce symbole est utilisé pour accéder à ses propres membres dans l'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 de classes, la classe parent et la sous-classe ont la même utilisation. pour éviter toute confusion lors de l'utilisation des propriétés et 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 faire référence à l'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 la résolution de plage L’opérateur doit accéder à la 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ésultats en cours 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!

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