Aus*_*yde 126 php language-history
当我学习PHP时,我在某处读到你应该总是使用大写版本的布尔值,TRUE并且FALSE,因为"普通"小写版本,true并且false使用起来并不"安全".
它已经很多年了,我编写的每个PHP脚本都使用大写版本.但是,我现在质疑,因为我已经看到大量用小写版本编写的PHP(即Zend Framework).
是/有没有理由使用大写版本,还是完全可以使用小写?
编辑:忘了提及这适用于NULL和null.
Rad*_*adu 104
define('TRUE', false);
define('FALSE', true);
Run Code Online (Sandbox Code Playgroud)
快乐的调试!(PHP < 5.1.3(2006年5月2日),见演示)
编辑:大写bool是常量,小写是值.你对价值感兴趣,而不是常数,这很容易改变.
Run Code Online (Sandbox Code Playgroud)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)
Luk*_*man 85
在官方PHP手册说:
要指定布尔文字,请使用关键字TRUE或FALSE.两者都不区分大小写.
所以是的,true === TRUE而且false === FALSE.
然而,就个人而言,出于可读性的原因,我总是喜欢TRUE一遍true又FALSE一遍false.这是对我的使用偏好同样的原因OR在or或||,以及使用AND过and或&&.
的PSR-2标准要求true,false并且null为小写.
小智 30
使用小写.
没关系,true完全一样TRUE.这同样适用于false和null.我没有听说过它在任何时候都很重要.
你可以解决问题的唯一方法是引用这些值,例如:
$foo = false; // FALSE
$bar = "false"; // TRUE
$foo2 = true; // TRUE
$bar2 = "true"; // TRUE
$foo3 = null; // NULL
$bar3 = "null"; // TRUE
Run Code Online (Sandbox Code Playgroud)
限制或鼓励您使用大写或小写的内容可能只是您公司或您自己的编码指南.除此之外,您可以自由使用任何一个,它不会导致任何问题.
我编写了简单的代码来检查false和FALSE之间的区别:每次迭代都做了以下事情:
for ($i = 0; $i < self::ITERATIONS; ++$i) {
(0 == FALSE) ;
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
Iterations: 100000000
using 'FALSE': 25.427761077881 sec
using 'false': 25.01614689827 sec
Run Code Online (Sandbox Code Playgroud)
因此我们可以看到布林情况略微触及了性能 - 小写更快.但你当然不会看到.