首頁  >  文章  >  後端開發  >  php中的範圍解析符

php中的範圍解析符

无忌哥哥
无忌哥哥原創
2018-06-28 15:03:561489瀏覽

* 範圍解析符號::

 * 一、用途

 * 1.呼叫靜態成員(類別外部)

 * 2.呼叫類別常數

 * 3.呼叫被子類別覆寫的類別成員(屬性/方法)

 * 二、場景

 * 1.類別外部:前面僅允許透過類別名稱來存取類別中成員

 * 2.類別內部:前面只允許: self, parent,static

 * 三、特殊: 允許使用類別名稱變數來引用類別名稱(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.&#39;<br>&#39;;
        //调用父类静态成员属性: parent::
        $res .= parent::HOME.&#39;<br>&#39;;
        //调用父类静态成员方法
        $res .= parent::test1().&#39;<br>&#39;;
        $res .= __METHOD__;
        return $res;
    }
    
}

//1.類別外部呼叫類別靜態成員

echo Demo1::HOME,&#39;<br>&#39;;
echo Demo1::test1();
echo &#39;<hr>&#39;;
echo Demo2::test1();
echo &#39;<hr>&#39;;

//注意Demo1呼叫test2()和Demo2呼叫test2()的差異

//Demo1::test( )傳回Demo1中的test1()運行結果

echo Demo1::test2();
echo &#39;<hr>&#39;;

//Demo2::test2()傳回Demo2中的test1()運行結果

echo Demo2::test2();
echo &#39;<hr>&#39;;

//php5.3 ,允許使用類變數來呼叫

$class = &#39;Demo2&#39;;
echo $class::test2();

以上是php中的範圍解析符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn