成都网站建设设计

将想法与焦点和您一起共享

php中怎么定义常量

这篇文章主要介绍“php中怎么定义常量”,在日常操作中,相信很多人在php中怎么定义常量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中怎么定义常量”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联公司公司2013年成立,先为射阳等服务建站,射阳等地企业,进行企业商务咨询服务。为射阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

php中定义常量的方法:1、使用define()函数定义,语法“define(常量名, 常量值,是否大小写敏感)”;2、使用const关键字定义,语法“const 常量名 = 常量值;”。

php中怎么定义常量

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

php中定义常量的方法

  • define()函数

  • const关键字

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

  • 常量前面没有美元符号($);

  • 常量只能用 define() 和 const 定义;

  • 常量的作用域是全局的;

  • 常量一旦被定义就不能被重新定义或者取消定义。

define()函数定义常量

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

define($name, $value , $case_insensitive)
  • $name 必选参数,常量名称(需要使用双引号或单引号包裹)

  • $value 必选参数,常量的值

  • $case_insensitive 可选参数,指定是否大小写敏感,默认是大小写敏感的,设定为 true 则表示大小写不敏感

';
?>

php中怎么定义常量

const关键字定义常量

语法:

const 常量名 = 常量值;

示例:

';
?>

php中怎么定义常量

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');

到此,关于“php中怎么定义常量”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章题目:php中怎么定义常量
转载来于:http://chengdu.cdxwcx.cn/article/ijcpho.html