1. 程式人生 > >範圍解析操作符 (::)的理解與應用

範圍解析操作符 (::)的理解與應用

範圍解析操作符更簡單地說是一對冒號,可以用於訪問靜態成員,類常量,還可以用於覆蓋類中的屬性和方法。
當在類定義之外引用到這些專案時,要使用類名。
自 PHP 5.3.0 起,可以通過變數來引用類,該變數的值不能是關鍵字(如 self,parent 和 static)。

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

<?php
class MyClass {
    const CONST_VALUE = 'A constant value';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起
echo MyClass::CONST_VALUE; ?>

Example #2 在類定義內部使用 ::
self,parent 和 static 這三個特殊的關鍵字是用於在類定義的內部對其屬性或方法進行訪問的。

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'static var';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo
self::$my_static . "\n"; } } $classname = 'OtherClass'; echo $classname::doubleColon(); // 自 PHP 5.3.0 起 OtherClass::doubleColon(); ?>