文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php中定义常量的方法是什么

2016-05-28 21:09

关注

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php中定义常量的方法

与变量相比,常量具有以下几个特点:

define()函数定义常量

合法的常量名只能以字母和下划线开始,后面可以跟着任意长度的字母、数字或下划线。在 PHP 中可以通过 define() 函数定义一个常量,define() 函数的语法如下:

define($name, $value , $case_insensitive)
<?php
header("Content-type:text/html;charset=utf-8");
define('WebSite', '编程界');
echo WebSite.'<br>';
?>

1.png

const关键字定义常量

语法:

const 常量名 = 常量值;

示例:

<?php
const FOO = 'BAR';
echo FOO.'<br>';
?>

2.png

define() 和 const 的区别:

const是在编译时定义常量,而define()方法是在运行时定义常量。

const不能用在if语句中, defne()能用在if语句中。

if(...) {
    const FOO = 'BAR';//错误
}
if(...) {
    define('FOO', 'BAR');//正确
}

define()的一个常用场景是先判断常量是否已经定义再定义常量:

if(defined('FOO)) {
    define('FOO', 'BAR')
}

const 定义常量时,值只能是静态标量(数字, 字符串, true,false, null), 而define()方法可以把任意表达式的值用作常量的值。从PHP5.6开始const也允许把表达式用作常量的值了。

const BIT_5 = 1 << 5; //PHP5.6后支持,之前的PHP版本不支持
define('BIT_5', 1 << 5);// 所有PHP版本都支持const 只允许简单的常量名,而define()可以把任何表达式的值用作常量名
for ($i = 0; $i < 32; $i++) {
    define('BIT_' . $i, 1 << $i);
}

const 定义的常量常量名是大小写敏感的,而传递true给define()方法的第三个参数时可以定义大小写不敏感的常量。

define('FOO', 'BAR', true);
echo FOO; //BAR
echo foo; //BAR

上面列举的都是const相较define()而言的一些缺点或者不灵活的地方,下面我们看一下为什么我个人推荐用const而不是define()来定义常量(除非要在上述列举的场景中定义常量)。

const 具有更好的可读性,const是语言结构而不是函数,而且与在类中定义类常量的形式保持一致。

const在当前的命名空间中定义常量, 而define()要实现类似效果必须在定义时传递完整的命名空间名称:

namespace A\B\C;
//To define the constant A\B\C\FOO:
const FOO = 'BAR';
define('A\B\C\FOO', 'BAR');
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯