類常量
引出類常量
普通常量 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();