84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
php官方手册中这么说,“一个常量一旦被定义,就不能再改变或者取消定义”。
可是程序中为何可以定义成这种值变化的形式?
define("MESSAGE", time()); //输出常量 echo MESSAGE;
认证0级讲师
从语法上来说,这个并没有错误,手册里所说的改变,是强调后期人为的改变,包括取消也是的。
这里你想表达的MESSAGE是可变的,可以理解为是php本身在运行中去内存中找到time()的结果。
我猜想一下,这个应该是跟函数式编程有点关系。time()这个函数可以赋值给一个常量,访问常量的时候等同于访问time()这个函数,而time()这个函数的返回值是不断变化的。
一个常量一旦被定义,就不能再改变或者取消定义
那你可以尝试改变MESSAGE试试,比如 MESSAGE += 1;
感觉这就是 建立了一个连接到time()函数!
从语法上来说,这个并没有错误,手册里所说的改变,是强调后期人为的改变,包括取消也是的。
这里你想表达的MESSAGE是可变的,可以理解为是php本身在运行中去内存中找到time()的结果。
我猜想一下,这个应该是跟函数式编程有点关系。time()这个函数可以赋值给一个常量,访问常量的时候等同于访问time()这个函数,而time()这个函数的返回值是不断变化的。
一个常量一旦被定义,就不能再改变或者取消定义
那你可以尝试改变MESSAGE试试,
比如 MESSAGE += 1;
感觉这就是 建立了一个连接到time()函数!