Maison >développement back-end >tutoriel php >La différence entre l'appel statique de classe et l'opérateur de résolution de portée en PHP

La différence entre l'appel statique de classe et l'opérateur de résolution de portée en PHP

小云云
小云云original
2018-01-11 10:32:251381parcourir

Cet article présente principalement la différence entre les opérateurs d'appel statique de classe et de résolution de plage en PHP. Les amis qui en ont besoin peuvent s'y référer. J'espère qu'il pourra aider tout le monde.

Le code spécifique est le suivant :


<?php
//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。
class ParentClass {
 public static $my_static = &#39;parent var &#39;;
 function test() {
  self::who(); // 输出 &#39;parent&#39; 是范围解析,不是静态调用
  $this->who(); // 输出 &#39;child&#39;
  static::who(); // 延迟静态绑定 是范围解析,不是静态调用
 }
 function who() {
  echo &#39;parent<br>&#39;;
 }
}
class ChildClass extends ParentClass {
 public static $my_static = &#39;child var &#39;;
 function who() {
  echo &#39;child<br>&#39;;
 }
}
$obj = new ChildClass();
$obj->test();
echo ChildClass::$my_static;//静态调用

La sortie ci-dessus

parent

enfant

child

child var

Recommandations associées :

Les méthodes non statiques peuvent-elles être appelées de manière statique en PHP ? (Appel étrange)

Analyse d'application de PHP appelant statiquement des méthodes non statiques_Tutoriel PHP

Analyse d'application de PHP appelant statiquement des méthodes non statiques

Analyse d'application de PHP appelant statiquement des méthodes non statiques

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