Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改以前定义的常量的值_Php_Constants - Fatal编程技术网

Php 更改以前定义的常量的值

Php 更改以前定义的常量的值,php,constants,Php,Constants,我在PHP中定义了一个常量,例如 define('CONSTANT_NAME', 'constant_value'); 我希望以后能够在代码中更改此常量的值 这能做到吗?如果是,怎么做?来自(重点是我的): define-定义命名的常量 发件人: 顾名思义,该值在脚本执行期间无法更改 你没有创建一个变量,你创建了一个常量。常数的要点是,它们不能改变 您应该改用true变量。当它以前定义为不区分大小写的常量(第三个参数)时,可以重新声明定义 见: 使用PHP CLI 5.2.6和5.5.3进行测

我在PHP中定义了一个常量,例如

define('CONSTANT_NAME', 'constant_value');
我希望以后能够在代码中更改此常量的值

这能做到吗?如果是,怎么做?

来自(重点是我的):

define
-定义命名的常量

发件人:

顾名思义,该值在脚本执行期间无法更改


你没有创建一个变量,你创建了一个常量。常数的要点是,它们不能改变


您应该改用true变量。

当它以前定义为不区分大小写的常量(第三个参数)时,可以重新声明定义

见:


使用PHP CLI 5.2.6和5.5.3进行测试。

有一种方法可以更改先前定义的常量。为此,必须启用PHP runkit扩展:

runkit扩展提供了修改用户定义的常量的方法 函数和用户定义的类。它还提供了定制服务 通过沙盒的超全局变量和可嵌入子解释器

它使您能够在PHP中修改任何需要修改的方面。这是先进的东西


请注意,常数通常被定义为常数是有原因的,因此,在几乎任何情况下,将其更改为测试以外的其他用途可能都不是一个好主意。

仅用于解决方法,将第三个参数传递为true将有助于您

define('CONSTANT_NAME', 'constant_value', true);
print CONSTANT_NAME.PHP_EOL;
define('CONSTANT_NAME', 'constant_value2');
print CONSTANT_NAME.PHP_EOL;

您可以使用使用const。。。作为…

define('CONSTANT_NAME', 'constant_value');
define('NEW_CONSTANT_NAME', 'constant_value2');
use const NEW_CONSTANT_NAME as CONSTANT_NAME;
echo CONSTANT_NAME;

谢谢,我现在意识到了。我一直在使用define来定义一些“常量”,并认为我可以使用它们。我改用了“global$variable\u name”。不区分大小写已被弃用,并将在8.0.0版中删除。从PHP7.3开始就不推荐了。从PHP7.3开始就不推荐了。是的,现在他们修复了它!
define('CONSTANT_NAME', 'constant_value');
define('NEW_CONSTANT_NAME', 'constant_value2');
use const NEW_CONSTANT_NAME as CONSTANT_NAME;
echo CONSTANT_NAME;