php范围解析操作符(::)

伊谢尔伦
Freigeben: 2016-11-23 14:13:35
Original
1124 Leute haben es durchsucht

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。

当在类定义之外引用到这些项目时,要使用类名。

自 PHP 5.3.0 起,可以通过变量来引用类,该变量的值不能是关键字(如 self,parent 和 static)。

把 Paamayim Nekudotayim 选作双冒号操作符的名字似乎有些奇怪。然而,这是 Zend 开发小组在写 Zend Engine 0.5(被用于 PHP 3 中)时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。

Example #1 在类的外部使用 :: 操作符

class MyClass
{
    const CONST_VALUE = 1;
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; //自PHP5.3.0起
echo MyClass::CONST_VALUE;
Nach dem Login kopieren

self,parent 和 static 这三个特殊的关键字是用于在类定义的内部对其属性或方法进行访问的。

Example #2 在类定义内部使用 ::

function __autoload($classname){
    require_once($classname.".php");
}
class OtherClass extends MyClass
{
    public static $my_static = 1;
    public static function doubleColon(){
        echo parent::CONST_VALUE.&#39;<br>&#39;;
        echo self::$my_static,&#39;<br>&#39;;
    }
}
$classname = &#39;OtherClass&#39;;
echo $classname::doubleColon();
OtherClass::doubleColon();
Nach dem Login kopieren

当一个子类覆盖其父类中的方法时,PHP 不会调用父类中已被覆盖的方法。是否调用父类的方法取决于子类。这种机制也作用于构造函数和析构函数,重载以及魔术方法。

Example #3 调用父类的方法

class MyClass
{
    protected function myFunc()
    {
        echo &#39;MyClass::myFunc()<br>&#39;;
    }
}
class OtherClass extends MyClass
{
    //覆盖了父类的定义
    public function myFunc()
    {
        //但还是可以调用父类中被覆盖的方法
        parent::myFunc();
        echo &#39;OtherClass::myFunc()<br>&#39;;
    }
}
$class = new OtherClass();
$class -> myFunc();
Nach dem Login kopieren

输出结果:

MyClass::myFunc()

OtherClass::myFunc()


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!