根据我在http://3v4l.org/ZCJWA上的测试示例(对于PHP 5.3.10 - 5.4.6):
<?php
namespace Foo;
define('Foo\\true', false);
define('Foo\\false', true);
var_dump(
true,
false,
1 === 1,
1 === 0
);
Run Code Online (Sandbox Code Playgroud)
将返回:
bool(false)
bool(false)
bool(true)
bool(false)
Run Code Online (Sandbox Code Playgroud)
为什么会覆盖true使用false,但不能false用true?
Tim*_*per 11
在你的第一个之后define,true现在定义为false,所以Foo\\false设置为 false.
得到它的工作如预期,你应该要设置Foo\\true并Foo\\false在全球空间的价值true和false分别为:
define('Foo\\true', \false);
define('Foo\\false', \true);
Run Code Online (Sandbox Code Playgroud)