[英]unset or change a defined constant PHP
假設我定義了一個這樣的變量:
<?php
define("page", "actual-page");
?>
現在我必須將這個內容從actual-page
更改為second-page
我怎么能意識到這一點?
我嘗試以下方法:
<?php
// method 1
page = "second-page";
// method 2
define("page", "second-page");
// method 3
unset(page);
define("page", "second-page");
?>
現在我的想法消失了......我還能做什么?
當你使用PHP的define()函數時,你沒有定義一個變量,你正在定義一個常量。 一旦腳本開始執行,常量就不能修改它們的值。
你可以使用runkit PECL擴展:
runkit_constant_remove('page');
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
更新:此模塊似乎會導致其他各種問題,例如會話系統。
也許是一個非常晚的答案,但問題是“現在我的想法消失了......我還能做什么呢?”
這是你可以做的“其他” - 使用$ GLOBALS:
<?php
// method 1
$GLOBALS['page'] = 'first-page';
// method 2
$GLOBALS['page'] = "second-page";
// method 3
$GLOBALS['page'] = 'third-page';
?>
我希望它有所幫助。 我在進行導入時使用它,如果導入標志打開,我希望不觸發特定事件:)
define有一個第三個參數(boolean),它將第一個定義的常量覆蓋到第二個定義的常量。 將第一個定義的常量設置為true 。
<?php
define("page", "actual-page", true);
// Returns page = actual-page
define("page", "second-page");
// Returns page = second-page
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.