php之魔術常量、類常量

類常量

引出類常量

普通常量 define(‘常量名’,常量值);
以前說過: define定義的常量 ,全局有效.無論是頁面內,函數內,類內,都可以訪問.

現在我們需要定義一種類常量,專門在類內發揮作用

屬性:
說明
1:作用域在類內,類似於靜態屬性
2:又是常量,則不可改.

其實就是”不可改變的靜態屬性”

類常量 在類內用 const 聲明即可
前面不用加修飾符,而且權限是public的,即外部也可以訪問

示例代碼

define('ACC','Deny');


class Human {
    const HEAD = 1;
    public static $leg = 2;

    public static function show() {
        echo ACC,'<br />';
        echo self::HEAD,'<br />';
        echo self::$leg,'<br />';
    }
}

Human::show();
echo Human::HEAD;

魔術常量

通俗理解

1:無法手動修改他的值,所以叫常量
2:但是值又是隨環境變動的,所以叫魔術

幾個常用魔術常量

__FILE__  返回當前文件的路徑.
在框架開發或者是網站初始化腳本中,用來計算網站的根目錄

__LINE__  返回當前的行號
在框架中,可以用來在debug時,記錄錯誤信息

__CLASS__ 返回當前的類名

__METHOD__ 返回當前的方法名

示例代碼

echo '當前正在運行的是',__FILE__,'文件','<br />';

echo '當前在',__DIR__,'目錄下<br />';

echo 'hi,我在',__LINE__,'行<br />';
echo 'hello,我在',__LINE__,'行<br />';
echo 'hehe,我在',__LINE__,'行<br />';

class Human {
    public static function t() {
        echo '你正在運行',__CLASS__,'類<br />';
        echo '下的',__METHOD__,'方法';
    }
}

Human::t();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章