搜索

首页  >  问答  >  正文

PHP常量为何可以定义成值变化的表达式?

php官方手册中这么说,“一个常量一旦被定义,就不能再改变或者取消定义”。

可是程序中为何可以定义成这种值变化的形式?

define("MESSAGE", time());

//输出常量
echo MESSAGE;
PHP中文网PHP中文网2777 天前341

全部回复(4)我来回复

  • ringa_lee

    ringa_lee2017-04-11 10:39:05

    从语法上来说,这个并没有错误,手册里所说的改变,是强调后期人为的改变,包括取消也是的。

    这里你想表达的MESSAGE是可变的,可以理解为是php本身在运行中去内存中找到time()的结果。

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:39:05

    我猜想一下,这个应该是跟函数式编程有点关系。time()这个函数可以赋值给一个常量,访问常量的时候等同于访问time()这个函数,而time()这个函数的返回值是不断变化的。

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 10:39:05

    一个常量一旦被定义,就不能再改变或者取消定义

    那你可以尝试改变MESSAGE试试,
    比如 MESSAGE += 1;

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-11 10:39:05

    感觉这就是 建立了一个连接到time()函数!

    回复
    0
  • 取消回复