2013-05-11 5 views
5

を想定定義された定数PHPは、私はこのような変数を定義変更:未設定または

<?php 
define("page", "actual-page"); 
?> 

今、私はそれを実現することができる方法second-pageからactual-pageからこの内容を変更する必要がありますか?私は他に何を行うことができます...私のアイデアが出て行く今

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

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

// method 3 
    unset(page); 
    define("page", "second-page"); 
?> 

私は、次の方法を試してみてください?

+0

Juampiが答えているように、 'define()'を使って定数 'page'を設定しています。代わりに、変数 '$ page = 'actual-page';'を使用してください。 –

答えて

14

PHPのdefine()関数を使用すると、変数を定義していないので、定数を定義しています。スクリプトの実行が開始されると、定数に値を変更することはできません。

+0

...定義済みの変数を変更することは不可能ですか? –

+2

非常に明確にするには:実行中にVARIABLEの値を変更することはできません。実行中に定数の値を変更することはできません。 – Juampi

+0

よろしく!これは私が意味するものです!ありがとう!私は 'variable'と' constant'ではなく書くようにしてください! –

5

することはでき、は、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 

アップデート:このモジュールは、様々な他のものとのトラブルを引き起こしているようです、例えばセッションシステムのように。

-4

には、最初に定義した定数を2番目に定義した定数に上書きする3番目の引数(ブール値)があります。最初に定義した定数をに設定すると、になります。

<?php 
define("page", "actual-page", true); 
// Returns page = actual-page 

define("page", "second-page"); 
// Returns page = second-page 
?> 
+0

第3引数は、定数を再定義できるかどうかではなく、大文字と小文字を区別するかどうかです。 http://php.net/manual/en/function.define.php –

関連する問題