普通常量 define('常量名',常量值);
以前说过:define定义的常量,全局有效
无论是页面内,函数内,类内,都可以访问。
例:
define('ACC','Deny')
}
Human::show(); //输出
Deny
能否定义 专门在类内发挥作用的常量
专门在类内发挥作用 说明
1.作用域在类内,类似于静态属性
2.又是常量,则不可改
其实就是“不可改变的静态属性”
类常量在类内用 const 声明即可
不用加权限修饰符,而且权限是默认public的,即外部也可以访问
类常量 静态属性 静态方法 ---》都是存放在类空间的
例:
}
echo Human::HEAD;
//输出
1;
注意:
魔术常量
1.无法手动修改他的值,所以叫常量
2.但是值又是随环境变动的,所以叫魔术
----魔术常量
魔术常量
自己查手册看去。
__FILE__ 返回当前文件的路径
在框架开发或者是网站初始化脚本中,用来计算网站的根目录
__LINE__ 返回当前的行号
在框架中,可以用来在debug时,记录错误信息。
__DIR__ 返回当前的目录
__CLASS__ 返回当前的类名
__METHOD__ 返回当前的方法名
魔术常量直接用 echo 输出就行了
例:
echo '当前正在运行的是',__FILE__,‘文件’;
后期静态绑定 / 延迟静态绑定
指类的计算self的定义不是以定义时为准,而是以运行时的计算结果为准
例:
static public function say2(){
}
}
Stu::say(); //输出
来自父类的whoami在执行
Stu::say2(); //输出
来自于子类的whoami在执行