如何更改PHP常量?

如何更改PHP常量?,php,constants,Php,Constants,我正在手工制作自己的PHP定制CMS,我定义了几个常量。有没有一种简单的方法来修改常数 我在考虑使用类似于fopen()的东西,然后对其进行更改,但我从未使用过文件系统函数。据我所知,常数一旦设置,就无法更改。不。它们是常量,如“-永久或不变的”(Wiktionary)。一旦它们被定义,就没有办法改变它们。引用第节常量: 在脚本执行期间,[常量]值不能更改 常量是简单值的标识符(名称)作为名称 建议在脚本执行期间该值不能更改 (魔法常数除外,它们实际上不是常数)。A. 默认情况下,常量区分大小写

我正在手工制作自己的PHP定制CMS,我定义了几个常量。有没有一种简单的方法来修改常数


我在考虑使用类似于fopen()的东西,然后对其进行更改,但我从未使用过文件系统函数。

据我所知,常数一旦设置,就无法更改。

不。它们是常量,如“-永久或不变的”(Wiktionary)。一旦它们被定义,就没有办法改变它们。引用第节常量:

在脚本执行期间,[常量]值不能更改

常量是简单值的标识符(名称)作为名称 建议在脚本执行期间该值不能更改 (魔法常数除外,它们实际上不是常数)。A. 默认情况下,常量区分大小写。按惯例,这是不变的 标识符总是大写的

常量的名称遵循与PHP中任何标签相同的规则。A. 有效的常量名称以字母或下划线开头,后跟 任意数量的字母、数字或下划线。作为常客 表达式,可以这样表示: [a-zA-Z\ux7F-\xff][a-zA-Z0-9\ux7F-\xff]*


From:(PHP mamula)

常量是常量,因此不能更改。 如果您想更改服务器常量,如allow_url_fopen,即主机的责任,请询问他们。 如果要在PHP中更改它们,请使用变量

更新

如果事实是Corbin所说的,并且您希望在安装过程中修改它们,那么您需要执行以下操作:0。将常量值更改为sg。像
%%constant1
。1.将代码读入变量。2.让用户设置变量。3.对所有这些文件使用str_replace,如str_replace(%%constant1“,$\u POST[“value1”],$configfile)。4.将$configfile作为文件的内容

更新2


对于您自己的CMS,我建议如下:将所有常量存储在一个文件中,因此您只需要编辑一个文件。也许比以前的解决方案更容易编辑,但如果值得的话,请使用IDK。

否。您不能修改常量。

常量意味着值是常量,因此您不能更改常量。如果要更改常量,则需要在常量状态下使用变量:

define('ROOT', '/some/path');
echo ROOT; // echo's /some/path
define('ROOT', '/some/other/path'); // gives an error
echo ROOT; // gives /some/path (if there were no error

$root = '/some/path';
echo $root; // echo's /some/path
$root = '/some/other/path';
echo $root; // echo's /some/other/path

我认为他的意思是在安装程序脚本的情况下,他希望将输入变量存储到配置文件中,以便在安装完成后在CMS中使用。 在这种情况下,他不会在运行时更改常量

他可能有这样一个文件:

define(DB, '');
define(USER, '');
define(PASS, '');
define(HOST, '');

他想创建一个脚本,用数据填充这些常量,这样就可以在CMS中使用它。

在PHP中,但前提是安装了runkit扩展

然而,我必须质疑,如果需要改变常数,为什么还要定义它。一旦更改,它将不再是常量,如果需要更改,在上下文中使用常量是合适的。如果需要在其他函数或代码的部分中访问,或者通过以下代码编写适当的代码,您可能需要考虑将其变为全局变量:

将数据作为参数传递给函数,然后返回经过处理的值(如果以过程方式编码)


在类的属性中设置值,然后在类中使用$this访问该值(如果以面向对象(OO)方式编码)。

您可能需要重新访问“常量”的字典定义。为什么需要更改常量?如果它们在整个代码中都不是常量,请使用variablesConstants-您不能修改它们。当然,如果你说的是define('constant_name','constant_value');否则,请在示例中进行解释,因为看起来您正试图在配置文件中讨论更改CMS的配置参数,并使用php脚本重写它。我知道常量的含义。我只是想知道是否有办法改变它们,或者类似的东西。我不想一直通过php文件手动编辑它们。很抱歉,我想到了错误的事情。也许他没有试图在实际运行时修改它们,但他想用它们作为CMS的配置,他想让他的安装脚本修改它们还是什么?(仍然不是一个好的解决方案,只是可能会更有意义的问题。)对不起,我是不正确的。。。对我来说,常量只是一个可以在整个站点中使用的值,而无需不断定义它们。我本应该更清楚我想要达到的目标。我正在创建我自己的CMS,只供我自己使用,我想知道如何创建一种方法来更改变量,或者不用手动编辑包含变量的文件。我很抱歉。不必为错误道歉,每个人都会这样:)好的。创建配置文件的最佳方法是什么?我要添加一个管理面板到我的CMS,我想从那里的变量是可编辑的。不能说比php.net页面更好!该声明需要加以限定。在运行时?eval()呢?该语句需要限定。在运行时?eval()呢?