取消设置或更改已定义的常量PHP

Ale*_*uhl 8 php

假设我定义了一个这样的变量:

<?php
define("page", "actual-page");
?>
Run Code Online (Sandbox Code Playgroud)

现在我有这个内容从改变actual-pagesecond-page我如何能实现呢?

我尝试以下方法:

<?php
// method 1
    page = "second-page";

// method 2
    define("page", "second-page");

// method 3
    unset(page);
    define("page", "second-page");
?>
Run Code Online (Sandbox Code Playgroud)

现在我的想法消失了......我还能做什么?

Jua*_*mpi 19

当你使用PHP的define()函数时,你没有定义一个变量,你正在定义一个常量.一旦脚本开始执行,常量就不能修改它们的值.

  • 为了清楚起见:您可以在执行期间更改VARIABLE的值.您无法在执行期间更改CONSTANT的值. (6认同)

Cob*_*ast 6

你可以使用runkit PECL扩展:

runkit_constant_remove('page');
Run Code Online (Sandbox Code Playgroud)

http://php.net/runkit_constant_remove
http://github.com/zenovich/runkit

sudo pecl install https://github.com/downloads/zenovich/runkit/runkit-1.0.3.tgz
Run Code Online (Sandbox Code Playgroud)

更新:此模块似乎会导致其他各种问题,例如会话系统.