定义常量的语法
define('常量名','常量值');
define('HEIGHT',8846);
常量的引用
echo 常量名; // 不用再加$符号
echo HEIGHT,'<br />';
常量的特点
1、一旦定义,值不能被修改,不能重新赋值
HEIGHT = 8888; // 直接语法错误
有同学想:既然常量不能用等号重新赋值,
那么能否用define,再定义一次,
并且,定义一个新值
2、 一旦定义,也不能重复定义
define('HEIGHT',8888);
刚才,虽然重新定义提示了一下
Notice:Constant HEIGHT already defined in ...... line XX
但是,常量值并不会改变。
3、重要特点,即"全局有效性",说白了,就是页面任意一处都能访问到.
这个特点需要结合函数才能体现
关于常量赋值
变量的值,有8种类型;常量的值可以有整型、浮点型、字符串型、布尔型、NULL五种(标量)。
其他三种:array,object,resource,都不可以赋给常量.
变量的作用域为函数体内,常量则作用于整个页面。
// 常量的命名规则
// 常量的命名规则和变量一样
define('hei',8846);
echo hei;
// 但是,习惯上大写.(语法上允许小写)
// 常量 也区分大小写
echo HEI; // 先找HEI常量的值,没找到,当成字符串来输出了.
如果引用了一个未曾定义的常量,因为没定义该常量,自然找不到值,最终会把常量名当成字符串来输出.
常量的检测
我们知道,一个变量是否已声明,可以检测到,用isset即可检测
开发时,我想知道,某个常量有没有定义,如果还没定义,我就去定义.
怎么样判断一个常量 是否定义过呢?
用defined('常量名'); 即可检测
如果常量已定义,返回true
如果常量没定义,返回false
动态常量
动态常量,需要用constant函数来实现
contant($var),则会把$var 的值,当成一个常量的名,并解析出常量的值为.
echo constant($who); // $who的值解析出来,例DA constant函数,再去解析DA对应的常量的值.
开发中,什么时间适合用常量
比如:网站的根目录,D:/www/
网站配置文件,不希望被更改,也可以写成常量。
浙公网安备 33010602011771号