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()函数!