自定义全局常量,类常量,类静态属性

define('name', 'value') 自定义全局常量,默认大小写敏感
const 定义类常量, 常量明前不用$, 一般使用大写字母

定义全局常量

define('CH', '传说');

定义类常量
 class ConstTest{
  const VERSION = '1.0'
  function getConstTest(){
      echo 'self::VERSION is :' . self::VERSION; //这里不使用$符号
  }
}
Ps:
  1. 一般尽量不使用define的原因:
    1.1 define 定义后的常量不能再修改 或 再次赋值,会报notice错误
    1.2 判断是否定义全局常量的方法是: defined('常量名') ,大小写注意,不能用isset()判断
    1.3 执行效率低,系统会从整个执行流程中查找该全局常量
类常量和类静态变量

类属性中有:类常量,类静态变量,公有、私有、受保护变量

class Test{
    const CONSTVAR= 'constvar'; //类常量
    static $static_var= 'staticvar'; //类静态变量
    function getStaticVar(){
      return self :: $staticVar;
    }
}

echo Test::CONSTVAR;  // 类常量
echo Test::$static_var;   //类静态变量
Ps:
  1. 让同一个函数在多次调用时可以使用同一个共享变量.就是静态变量(属性)
  2. 类的静态属性,会在类文件加载时就初始化,属性值是可以更改的。值可以是任意变量类型(但初始化的时候. 只能是简单数据类型, 数组)
  3. 类常量,一旦定义了就无法变更值。值只能是简单的数据类型
Link:

参考和整理自以下链接:
1.http://www.jb51.net/article/55089.htm
2.http://huangqiqing123.iteye.com/blog/1921428

你可能感兴趣的:(自定义全局常量,类常量,类静态属性)