php中使用define后可以给等号常量赋值吗?

问题描述 投票:0回答:3

我知道定义一个常量,你可以这样做

define("CONSTANT", "Hello world.");

如果我想改变常量的值,我必须再次执行define()吗?为什么我不能在第一次定义之后就直接执行

CONSTANT = "whatever";
呢?

php constants
3个回答
10
投票

常数的全部意义在于它始终是相同的。定义常量后就无法更改它。

即使使用

define("CONSTANT", "Hello world.");
也会返回错误。

我只是快速地向您展示您会得到什么:

Notice: Constant CONSTANT already defined in /Users/stokholm/test.php on line 3

Call Stack:
    0.0003     629992   1. {main}() /Users/stokholm/test.php:0
    0.0171     630232   2. define() /Users/stokholm/test.php:3

1
投票

常量,正如其名称所示,一旦定义就不能更改。请改用变量。


0
投票

在某些情况下,对于 PHP≥5.6,您可以使用别名技术重新定义常量:

define('MY_CONST', 'const_value');

var_dump(MY_CONST);

define('NEW_MY_CONST', 'new_const_value');
use const NEW_MY_CONST as MY_CONST;

var_dump(MY_CONST);

https://3v4l.org/sF7Pb#v8.3.6

© www.soinside.com 2019 - 2024. All rights reserved.