加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 云连接、智能边缘云、数据快递、云手机、云日志!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中用const和define两种方式有什么区别

发布时间:2023-12-31 12:42:17 所属栏目:PHP教程 来源:DaWei
导读: 今天小编跟大家讲解下有关“PHP中用const和define定义常量不同在哪”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。

今天小编跟大家讲解下有关“PHP中用const和define定义常量不同在哪”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。

在PHP中定义常量时,可用const与define这两种方式,那他们到底有什么区别呢?

如果在类中定义常量,不能用define,而用const,如下例:

<?php

//在类外面通常这样定义常量

define("PHP","111cn.net");

class MyClass

{

    //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号

    const constant = 'constant value';

    function showConstant() {

        echo  self::constant . "<br>";

    }

}

echo MyClass::constant . "<br>";

$classname = "MyClass";

echo $classname::constant . "<br>"; // PHP 5.3.0之后

$class = new MyClass();

$class->showConstant();

echo $class::constant."<br>"; // PHP 5.3.0之后

//print_r(get_defined_constants());  //可以用get_defined_constants()获取所有定义的常量

?>

一般是define在类外定义常量,const在类内定义常量,并且const必须通过类名::变量名来进行访问。但是php5.3以上支持类外通过const定义常量,看如下,这样是ok的:

<?php

   const a = "abcdef";

   echo a;

?>

关于常量的基础知识,这里不说了,除了以上,define和const的其它区别(摘自网络):

1.const不能再条件语句中定义常量,但是define是可以的,如下:

<?php

if(1){

   const a = 'java';

 }   

echo a;  //必错

?>

2.const采用一个普通的常量名称,define可以采用表达式作为名称

<?phpconst  FOO = 'PHP';

for ($i = 0; $i < 32; ++$i) {

    define('PHP_' . $i, 1 << $i);

}

?>

3.const只能接受静态的标量,而define可以采用任何表达式。

<?php

const PHP = 1 << 5; // 错误

define('PHP', 1 << 5); // 正确

?>

以上就是关于“PHP中用const和define定义常量不同在哪”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章