DevOps开发运维
成长之路

PHP中的常量

什么是常量

常量是一个简单值得标识符,常量一经定义在脚本执行期间是不能改变

常量分类

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)  根据常量的名称获取常量的值

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()  返回的是包含系统常量和自定义常量的数组

const.php

<?php

header('content-type:text/html;charset:utf-8');
//const关键字定义常量

const WEB_TITLE='GY的个人博客';
const WEB_BLOG_URL='https://www.lnmp.ink';
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
赞(0)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图