define

define用来定义一个常量,常量也是全局范围的。不用管作用域就可以在脚本的任何地方访问。一个常量一旦被定义,就不能再改变或者取消定义。

常量与变量有很多相似的地方,因此,很容易混淆;下面,我们列举一下常量与变量之间的不同点:

  1. 一个常量值在指定之后就不可以更改

  2. 设置常量时,不需要在前面加上“$”符号

  3. 常量可以被所有范围的域访问

  4. 常量的值只能是“字符串[string]”和“数字[number]”

define的语法格式如下:

define(name,value,case_insensitive)
登录后复制
参数描述
name必要参数。指定常量的名称
value必要参数。指定常量的值
case_insensitive可选参数。指定常量的名称是否是不区分大小写的[case-insensitive]。如果设置为True,则不区分字母大小写;如果设置为False,则区分字母大小写。默认值是:False

指定一个常量(区分大小写),其示例代码如下:

<?php
define("GREETING","How are you today?");
echo constant("GREETING");
?>
登录后复制

输出下面的结果:

How are you today?
登录后复制
登录后复制

指定一个常量(不区分大小写),其示例代码如下:

<?php
define("GREETING","How are you today?",TRUE);
echo constant("GREETING");
?>
登录后复制

输出下面的结果:

How are you today?
登录后复制
登录后复制

defined

defined用来检测常量有没有被定义,若常量存在,则返回 true,否则返回 false。

defined的语法格式如下:

defined(name)
登录后复制
参数描述
name必要参数。指定常量对象的名称

其示例代码如下:

<?php
define("GREETING","How are you today?");
echo defined("GREETING");
?>
登录后复制

输出下面的结果:1

ThinkPHP模板引擎的defined标签用于判断常量是否已经被定义。

defined标签用法如下:

<present name="常量">要输出的内容</present>
登录后复制

在模板/Tpl/default/Index/display.html中使用defined标签如下:

<defined name="SITE_NAME">网站名称:{*SITE_NAME}</defined>
登录后复制

如果判断没有被定义,可以使用:

<notdefined name="SITE_NAME">{*SITE_NAME}不存在活未定义</notdefined>
登录后复制

以上就是php中define和defined函数的区别和用法实例的详细内容,更多请关注Work网其它相关文章!

09-04 17:46