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