什么是常量
常量是一个简单值得标识符,常量一经定义在脚本执行期间是不能改变
常量分类
1.系统常量
PHP提前给大家提供的,拿来就可以直接使用
PHP_VERSION PHP的版本
PHP_OS PHP的运行系统
PHP_INT_MAX 整型的最大值
例子 :
<?php //系统常量 echo PHP_VERSION;//7.0.9 echo '<br/>'; echo PHP_OS;//WINNT echo '<br/>'; echo PHP_INT_MAX;//9223372036854775807
2.自定义常量
定义常量
1.define()函数定义常量 ==> define($name,$value)
注意:
常量名称不加$
常量名称最好大写,以字母或者下划线开始
常量默认区分大小写
常量作用域是全局
常量一经定义,在脚本执行期间是不能改变的
常量的值可以是标量类型,也可以是数组
2.const 关键字定义常量 ==>const NAME=值;
使用常量
1.直接使用常量的名称即可
2.constant($name) 根据常量的名称获取常量的值
1.define()函数定义常量 ==> define($name,$value) 注意: 常量名称不加$ 常量名称最好大写,以字母或者下划线开始 常量默认区分大小写 常量作用域是全局 常量一经定义,在脚本执行期间是不能改变的 常量的值可以是标量类型,也可以是数组 2.const 关键字定义常量 ==>const NAME=值;
使用常量
1.直接使用常量的名称即可
2.constant($name) 根据常量的名称获取常量的值
define.php
<?php header('content-type:text/html;charset:utf-8'); //通过define定义常量 define('TEST','this is a test'); echo TEST,'<hr/>'; //常量一经定义不能改变 //define('TEST','hello world');//错误 // //echo TEST;//错误 define('USERNAME','king'); define('AGE',12); define('MARRIED',true); define('SALARY',123456.789); define('TEST_ARRAY',array('a','b','c')); echo '用户名为:',USERNAME,'<br/>'; echo '年龄为:'.AGE.'<br/>'; echo '是否结婚:'.MARRIED.'<br/>'; echo '月薪:'.SALARY.'<br/>'; var_dump(TEST_ARRAY); echo '<hr/>'; //常量默认区分大小写,使用的时候按照定义时的大小写使用 define("TEST1",'hello world'); //echo test1; echo TEST1; //定义数据库信息 define('USERNAME','root'); define('PASSWORD','123');
test.php
<?php header('content-type:text/html;charset:utf-8'); define('NAME','澈'); define('MY_WEB','http://imooc.com'); define('SKY','蓝色'); echo 'NAME:',NAME,'<br/>'; echo 'MY_WEB:',MY_WEB,'<br/>'; echo 'SKY:',SKY,'<br/>'; echo '<hr/>'; $a = NAME; $b = MY_WEB; $c = SKY; echo '$a:',$a,'<br/>'; echo '$b:',$b,'<br/>'; echo '$c:',$c,'<br/>';
检测常量是否存在
defined($name) 检测常量名称是否存在,如果存在返回true,否则返回false
获取所有已定义的常量
get_defined_constants() 返回的是包含系统常量和自定义常量的数组
get_defined_constants() 返回的是包含系统常量和自定义常量的数组
const.php
<?php header('content-type:text/html;charset:utf-8'); //const关键字定义常量 const WEB_TITLE='GY的个人博客'; const WEB_BLOG_URL='https://www.mysqlnote.com'; const WEB_ADMIN='sz'; const TEST='this is a test'; echo WEB_TITLE,'<br/>'; echo WEB_BLOG_URL,'<br/>'; echo WEB_ADMIN,'<hr/>'; //通过const来换取常量的值 echo constant('TEST'),'<br/>'; echo constant('WEB_TITLE'),'<br/>'; echo constant('PHP_VERSION'),'<br/>'; //defined检测常量是否存在 var_dump(defined('PHP_VERSION')); echo '<br/>'; var_dump(defined('TEST')); //get_defined_constants() 返回的是包含系统常量和自定义常量的数组 echo '<hr/>'; print_r(get_defined_constants());
3.魔术常量
__LINE__ 得到当前的行号
__FILE__ 得到当前文件的完整绝对路径和文件名
__DIR__ 得到文件的完整绝对路径
__FUNCTION__ 得到当前函数的名称
__CLASS__ 得到当前类的类名
__METHOD__ 得到当前类的方法名称
__TRAIT__ 得到当前的TRAIT名称
__NAMESPACE__ 得到当前命名的空间的名称
例子:
<?php //魔术常量 echo __LINE__; //5 echo '<br/>'; echo __LINE__; //9 echo '<br/>'; echo __FILE__;//D:\phpstudy\WWW\phpcode\MagicContants.php echo '<br/>'; echo __DIR__;//D:\phpstudy\WWW\phpcode