Quando eu estava aprendendo PHP, li em algum lugar que você sempre deve usar as versões em maiúsculas dos booleanos TRUE
e FALSE
, porque as versões em letras minúsculas "normais" true
e false
não eram "seguras" de usar.
Agora já faz muitos anos, e todo script PHP que escrevi usa a versão em maiúsculas. Agora, porém, estou questionando isso, pois vi bastante PHP escrito com a versão em minúscula (ou seja, Zend Framework).
Existe / houve algum motivo para usar a versão em maiúsculas ou é perfeitamente aceitável usar a minúscula?
edit: esqueci de mencionar que isso se aplica a NULL
e null
bem.
php
language-history
Austin Hyde
fonte
fonte
Respostas:
O manual oficial do PHP diz:
Então sim,
true === TRUE
efalse === FALSE
.Pessoalmente, porém, eu prefiro
TRUE
maistrue
eFALSE
maisfalse
por razões de legibilidade. É o mesmo motivo da minha preferência em usarOR
overor
ou||
, e usarAND
overand
ou&&
.O PSR-2 padrão requer
true
,false
enull
para estar em minúsculas.fonte
OR
e||
são operadores diferentes no PHP (como eles têm precedência diferente), como sãoAND
e&&
. (Assim, por exemplo&&
e||
é maior precedência do que os operadores de atribuição, masOR
eAND
não são.)Feliz depuração! (PHP < 5.1.3 (2 de maio de 2006) , consulte Demo )
Edit: Bools maiúsculos são constantes e minúsculas são valores. Você está interessado no valor, não na constante, que pode mudar facilmente.
fonte
T_NULL
,T_TRUE
eT_FALSE
no momento da análise), são insensíveis ao caso, portanto, usandoNULL
não é realmente uma "constante" --- a menos que você faça uma constante, usandodefine()
. Simplesmente usarNULL
ouTRUE
não significa que seja uma constante, como se não houvesse essa constante, o PHP a interpreta como literal. Uma descrição mais precisa é que as versões em minúsculas não podem ser redefinidas, enquanto qualquer outra variação de caso pode .Use minúsculas.
fonte
Se você pretende usar JSON, então o RFC7159 diz:
Na lista de mudanças incompatíveis com versões anteriores no PHP 5.6 :
De acordo com o padrão PSR-2 :
fonte
json_encode(TRUE)
ejson_encode(true)
rendimento'true'
.Eu costumava fazer booleanos no estilo C, VERDADEIRO / FALSO, como todos os consts, em todas as maiúsculas, até chegar ao movimento PSR .
Seção 2.5 do PSR-2:
Então, basicamente, se você quiser se divertir com detalhes do estilo de código aberto, os booleanos devem ser minúsculos.
fonte
Não importa,
true
é exatamente o mesmo queTRUE
. O mesmo vale parafalse
enull
. Não ouvi dizer que isso teria importância a qualquer momento.A única maneira de você estragar tudo é citando esses valores, por exemplo:
A única coisa que restringe ou encoraja você a usar letras maiúsculas ou minúsculas pode ser a sua empresa ou suas próprias diretrizes de codificação. Fora isso, você pode usar qualquer um deles e isso não causará problemas.
fonte
false
enull
seria o mesmo. Eu disse que "o mesmo valefalse
enull
", o que significa que ambos podem ser expressos em letras maiúsculas ou minúsculas.Eu escrevi um código simples para verificar as diferenças entre false e FALSE : Cada iteração estava fazendo algo que:
Aqui estão os resultados:
Portanto, podemos ver que o desempenho é levemente afetado pelo caso dos booleanos - as minúsculas são mais rápidas. Mas certamente você não verá.
fonte
Pessoalmente, sempre usei o formulário em minúsculas, mas por nenhuma razão específica a não ser para deixar meu código organizado, o único lugar em que uso letras maiúsculas é quando os nomes de classes e nomes de variáveis estão em maiúsculas e minúsculas.
Uma vantagem de usar letras maiúsculas que vem à mente é que elas se destacam e são fáceis de encontrar no código.
fonte
Me deparei com essa pergunta antiga enquanto me perguntava a mesma coisa. Bom ponto com define ('TRUE', false); define ('FALSE', true); Não se aplica ao php5. Escrever essas linhas em um código php5 é como escrever um comentário.
fonte
Aqui está o meu teste no Windows 7x64bit Apache / 2.4.9 PHP / 5.5.14
Desta vez, FALSE venceu 20 vezes. Então, maiúsculas é mais rápido no meu ambiente.
fonte