* Analyseur de portée ::
* 1. Objectif
* 1. Appeler des membres statiques (en dehors de la classe)
* 2. Appeler des constantes de classe
* 3. Appeler les membres de la classe (propriétés/méthodes) couverts par les sous-classes
* 2. Scénarios
* 1. En dehors de la classe : Seul l'accès à la classe via le nom de la classe est Membre autorisé
* 2. À l'intérieur de la classe : seuls les éléments suivants sont autorisés : self, parent, static
* 3. Spécial : les variables de nom de classe peuvent être utilisées pour référencer le nom de la classe (php5.3+)
class Demo1 { const HOME = '合肥'; public static function test1() { return __METHOD__; } public static function test2() { //延迟静态绑定:后面会说到 //static::根据上下文来决定使用哪个类来调用 return static::test1(); } } class Demo2 extends Demo1 { public static $name = '朱老师'; public static function test1() { //调用本类静态成员: self:: $res = self::$name.'<br>'; //调用父类静态成员属性: parent:: $res .= parent::HOME.'<br>'; //调用父类静态成员方法 $res .= parent::test1().'<br>'; $res .= __METHOD__; return $res; } }
//1. Appelez les membres statiques de la classe depuis l'extérieur de la classe
echo Demo1::HOME,'<br>'; echo Demo1::test1(); echo '<hr>'; echo Demo2::test1(); echo '<hr>';
//Notez la différence entre l'appel de Demo1 test2() et l'appel de Demo2. test2()
// Demo1::test() renvoie le résultat d'exécution de test1() dans Demo1
echo Demo1::test2(); echo '<hr>';
//Demo2::test2() renvoie le résultat d'exécution de test1 () dans Demo2
echo Demo2::test2(); echo '<hr>';
//php5.3+, permet l'utilisation de variables de classe pour appeler
$class = 'Demo2'; echo $class::test2();
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!