PHP 中的大写布尔值与小写

2022-08-30 06:51:59

当我在学习PHP时,我在某处读到你应该总是使用布尔值的大写版本,并且,因为“正常”的小写版本和,使用起来并不“安全”。TRUEFALSEtruefalse

现在已经很多年了,我写的每个PHP脚本都使用大写版本。不过,现在我对此表示质疑,因为我已经看到很多PHP都是用小写版本(即Zend Framework)编写的。

是否/曾经有理由使用大写版本,或者使用小写版本是完全可以的?

编辑:忘了提这也适用于和。NULLnull


答案 1
define('TRUE', false);
define('FALSE', true);

祝您调试愉快!(PHP < 5.1.3 (2006 年 5 月 2 日),请参阅演示)

编辑:大写的布尔是常量,小写的是值。您感兴趣的是值,而不是常量,常量很容易改变。


Eliminated run-time constant fetching for TRUE, FALSE and NULL

author      dmitry <dmitry>
            Wed, 15 Mar 2006 09:04:48 +0000 (09:04 +0000)
committer   dmitry <dmitry>
            Wed, 15 Mar 2006 09:04:48 +0000 (09:04 +0000)
commit      d51599dfcd3282049c7a91809bb83f665af23b69
tree        05b23b2f97cf59422ff71cc6a093e174dbdecbd3
parent      a623645b6fd66c14f401bb2c9e4a302d767800fd

提交 d51599dfcd3282049c7a91809bb83f665af23b69 (和 6f76b17079a709415195a7c27607cd52d039d7c3)


答案 2

官方的PHP手册说:

若要指定布尔文本,请使用关键字 TRUE 或 FALSE。两者都不区分大小写。

所以是的,和.true === TRUEfalse === FALSE

但是,就个人而言,出于可读性的原因,我更喜欢一遍又一遍。这与我更喜欢使用 over 或 以及使用 over or 的原因相同。TRUEtrueFALSEfalseORor||ANDand&&

PSR-2标准要求,并且要小写。truefalsenull


推荐