含义:用于存储一个不会变化也不希望变化的数据的标识符
常量值只能是标量类型(string、int、float、bool)
常量命名规则与变量相同,常常将常量的名称使用“全大写”形式
定义:
(1)使用define()函数命名
define(“常量名”,常量值),推荐常用名使用全大写形式
(2)使用const语法定义
使用形式:const 常量名=常量值;
只能在“最顶层”的代码域中使用,不能再大括号中,即不能再函数中或条件语句中或其他表示一个“范围”的语句中使用。
使用常量:
(1)直接使用名字
(2)使用constant()函数:constant(“常量名”);
示例:
const C1=1;
const C2=2;
for($i=1;$i<=2;$i++){
echo constant(“C”.$i);
}
变量与常量的区别
定义形式不同
使用形式不同:常量无需$符号
可变程度不同:常量的值不可变,也不可销毁
作用范围不同:常量具有超全局作用域(函数内外都可以使用)
可用类型不同:常量只能存储标量类型:int、float、string、bool
判断常量是否存在:defined()
判断的结果为布尔值
常用形式:if(defined(某常量名)==false){这里可以定义该变量}
也可以:$sesult=defined(某常量名); //结果是true或false
使用一个未定义的常量(特殊情况):
使用一个未定义的常量会报一个错误(notice错误)--跟使用一个未定义变量一样,不推荐使用。在php中,该常量似乎存在,并且该常量的值就是该名字。
预定义常量
php语言中,预定义了大量的常量,可以直接使用
其中有些常量,是需要某些模块打开之后才用(比如mysql模块)
M_PI(圆周率)、 PHP_OS(操作系统)、PHP_VERSION(php版本号)、 PHP_INT_MAX(php中最大的整数值)
参考手册》附录》保留字列表》预定义常量
魔术常量
魔术常量其实就是一种值会随着一定的条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变,不区分大小写。(下划线为连续两个)
比如:__DIR__ (当前网页文件的所在目录)、__FILE__(当前网页文件)、__LINE__(当前这一行)
参考手册》语言参考》常量》魔术常量
示例:
echo “当前网页文件所在目录为:”._DIR_;
示例:
<?php
//常量定义
define(“CONST1”,1);//最常用的定义形式
define(“_C2”,”ABC”);//不推荐使用“--”开头的名字
define(“pi”,3.14);//常量名小写,不推荐
const C1=11;//顶层代码,可以使用const
If(C1>10){
const C2=11;//非顶层,语法错误
}
//使用常量—直接使用
echo CONST1;
$str2=“<h3>”._C2_.”</h3>”; //字符串用点号连接
$mianji=pi*5*5;
//使用常量—constant函数
echo “常量C1的值为:”.constant(”C1”);
$s1=”C1”;
echo “常量C1的值为:”.constant($s1);//$s1的数据就是这一个字符串C1,其代表一个常量的名字
echo “常量C1的值为:C1”;// 常量在双引号字符串中不能被识别
Ini_set(“display_errors”,0);//不显示notice错误
echo NOTCONST; //未定义的常量名NOTCONST
?>