文章出處

使用總結:

1.不能使用 define 來定義

2.通過 "類名::常量名" 來獲取

/**
 * PHP類常量
 *
 * 類常量屬于類自身,不屬于對象實例,不能通過對象實例訪問
 * 不能用public,protected,private,static修飾
 * 子類可以重寫父類中的常量,可以通過(parent::)來調用父類中的常量
 * 自PHP5.3.0起,可以用一個變量來動態調用類。但該變量的值不能為關鍵字(如self,parent或static)。
 */
class Foo
{
    // 常量值只能是標量,string,bool,integer,float,null,可以用nowdoc結構來初始化常量
    const BAR = 'bar';
 
    public static function getConstantValue()
    {
        // 在類的內部可以用self或類名來訪問自身的常量,外部需要用類名
        return self::BAR;
    }
 
    public function getConstant()
    {
        return self::BAR;
    }
 
}
 
$foo = 'Foo';
echo $foo::BAR, '<br />';
 
echo Foo::BAR, '<br />';
 
$obj = new Foo();
echo $obj->getConstant(), '<br />';
echo $obj->getConstantValue(), '<br />';
 
echo Foo::getConstantValue();
 
// 以上均輸出bar
 
class Bar extends Foo
{
    const BAR = 'foo'; // 重寫父類常量
 
    public static function getMyConstant()
    {
        return self::BAR;
    }
 
    public static function getParentConstant()
    {
        return parent::BAR;
    }
}
 
echo Bar::getMyConstant(); // foo
echo Bar::getParentConstant(); // bar

 

 

------->>>>


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()