一、概念
- 常量就是一种特殊的变量,也用于存储数据,常量一旦定义就不允许修改其值,常量本身也不允许删除
- 常量的值只能是基本数据类型(标量类型)
- 常量默认区分大小写,常量一般都是全部大写字母
- 命名规则:变量或者函数采用snake_case(小写字母加下划线)命名规则,常量是SNAKE_CASE命名规则
二、定义
- 语法1----define(‘常量名’,值)
<?php define('PI',3.14); echo PI;//3.14 ?>
- 语法2-------const常量名=值
<?php const PI=3.14; echo PI;//3.14 ?>
- 区别:
define定义的常量可以自定义是否区分大小写----define的第三个参数设置为true
<?php define('PI',3.14,true); echo pi;//3.14 echo Pi;//3.14 echo pI;//3.14 echo PI;//3.14 ?>
define语法可以在分支中定义的常量,const不允许
<?php if(true){ define('PI',3.14);//可以输出 const PP=3.14;//报错 } ?>
三、常量的判断及获取所有的常量
- 常量的判断-----defined(‘常量’)
<?php define('PI',3.14); $result=defined('PI'); var_dump($result);//bool(true) ?>
- 所有常量的获取
<?php $result=get_defined_constants(); echo '<pre>'; print_r ($result); ?>
四、魔术常量
-
__FILE__-------------当前文件完整的路径和及文件名
-
__DIR__-------------当前文件的路径(不包括文件名)
-
__LINE__-------------用于获取当前行号
<?php echo __FILE__;//E:WAMPApache2.4htdocs est.php echo __DIR__;//E:WAMPApache2.4htdocs echo __LINE__;//4 ?>
-
__FUNCTION__-------------用于获取当前函数的函数名
<?php function showInfo(){ echo __FUNCTION__; } showInfo();//showInfo ?>
-
__METHOD__-------------用于获取当前方法的方法名
-
__CLASS__-------------用于获取当前类的类名
-
__NAMESPACE__-------------用于获取当前空间的空间名