常量的存在和获取

来源:互联网 发布:md5加密java代码百度云 编辑:程序博客网 时间:2024/04/29 09:35

一、获取常量的两种方式

定义了常量,那么就要使用常量,那么如何获取常量值呢?

一般来说,常量的取值分为两种不同的方式,接下来让我们一起来探探吧!

第一种是使用常量名直接获取值,看下面计算圆的面积的例子:

<?phpdefine("PI",3.14);$r=1;$area = PI*$r*$r; //计算圆的面积?>

直接使用常量名PI获取它的值参与运算。

第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:

mixed constant(string constant_name)

第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)。参考下面例子更好的理解:

<?php $p="";//定义圆周率的两种取值define("PI1",3.14);define("PI2",3.142);//定义值的精度$height = "中";//根据精度返回常量名,将常量变成了一个可变的常量if($height == "中"){    $p = "PI1";}else if($height == "低"){    $p = "PI2";}$r=1;$area=constant($p)*$r*$r;echo $are;?>

二、如何判定常量是否被定义

如果常量被重复定义以后,PHP解析器会发出“Constant XXX already defined”的警告,提醒我们该常量已经被定义过。那么,在团队开发,或代码量很大的情况下,我们如何去判定一个常量是否被定义呢?
defined()函数可以帮助我们判断一个常量是否已经定义,其语法格式为:

bool defined(string constants_name)

它只有参数constant_name,指的是要获取常量的名称,若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)

define("PI1",3.14);$p = "PI1";$is1=define($p);$is2=define("PI2");var_dump($is1);var_dump($is2>?>

执行结果如下:
bool(true)
bool(false)
结果可以看出,PI2没有定义,$p是常量PI1,已定义过。

0 0
原创粉丝点击