var_export(array(NULL, TRUE, FALSE));
结果:
array (
0 => NULL,
1 => true,
2 => false,
)
NULL为大写,但true和false为小写。
我认为这有一个历史原因,但我没有在任何地方找到它。
以下实验也非常有趣,并建议在内部,null,true和false的“规范”拼写是小写的,与var_export()的作用相反:https://3v4l.org/ggM4E
define('false', '- false -');
define('FALSE', '- FALSE -');
define('null', '- null -');
define('NULL', '- NULL -');
var_export(array(TRUE, true, FALSE, false, NULL, null));
它表明:
哦,只是为了完整性:如果在PHP 5.x中的命名空间内,则实际上不会忽略define('NULL',..)和define('FALSE',..)。见https://3v4l.org/JusvB。或者如果你真的想要,你甚至可以在名称空间中覆盖'null'和'false':https://3v4l.org/i796C
相关:Uppercase Booleans vs. Lowercase in PHP,请参阅此答案:https://stackoverflow.com/a/3807178/246724
答案 0 :(得分:1)
正如@NikiC在OP评论中指出的那样,没有具体的理由。
最合乎逻辑的解释是 认为PHP是用C语言编写的,历史标准将NULL
定义为大写,true
,false
为小写原因在于PHP的标准也会效仿。
IEEE Std 1003.1参考文献: