Quand j'apprenais PHP, j'ai lu quelque part que vous devriez toujours utiliser les versions majuscules des booléens, TRUE
et FALSE
, parce que les versions minuscules "normales", true
et false
, n'étaient pas "sûres" à utiliser.
Cela fait maintenant plusieurs années, et chaque script PHP que j'ai écrit utilise la version majuscule. Maintenant, cependant, je remets cela en question, car j'ai vu beaucoup de PHP écrit avec la version minuscule (ie Zend Framework).
Y a-t-il déjà eu une raison d'utiliser la version majuscule ou est-il parfaitement acceptable d'utiliser la minuscule?
edit: J'ai oublié de mentionner que cela s'applique également à NULL
et null
.
php
language-history
Austin Hyde
la source
la source
Réponses:
Le manuel PHP officiel dit:
Alors oui,
true === TRUE
etfalse === FALSE
.Personnellement, cependant, je préfère
TRUE
encoretrue
etFALSE
encorefalse
pour des raisons de lisibilité. C'est la même raison pour ma préférence d'utiliserOR
overor
or||
, etAND
overand
or&&
.Le PSR-2 norme exige
true
,false
etnull
d'être en minuscules.la source
OR
et||
sont des opérateurs différents en PHP (car ils ont une priorité différente), comme le sontAND
et&&
. (Par exemple,&&
et||
ont une priorité plus élevée que les opérateurs d'affectation, maisOR
etAND
ne le sont pas.)Bon débogage! (PHP < 5.1.3 (2 mai 2006) , voir Démo )
Edit: les booléens majuscules sont des constantes et les minuscules sont des valeurs. Vous êtes intéressé par la valeur, pas par la constante, qui peut facilement changer.
la source
T_NULL
,T_TRUE
etT_FALSE
au moment de l' analyse), sont insensibles à la casse, donc l' utilisationNULL
n'est pas réellement une « constante » --- sauf si vous en faites une constante, en utilisantdefine()
. Utiliser simplementNULL
ouTRUE
ne signifie pas que c'est une constante, comme s'il n'y avait pas de telle constante, PHP l'interprète comme le littéral. Une description plus précise est que les versions minuscules ne peuvent pas être redéfinies, alors que toute autre variante de cas peut .Utilisez des minuscules.
la source
Si vous avez l'intention d'utiliser JSON, la RFC7159 dit:
Dans la liste des modifications rétrocompatibles de PHP 5.6 :
Selon la norme PSR-2 :
la source
json_encode(TRUE)
et lejson_encode(true)
rendement'true'
.J'avais l'habitude de faire des booléens TRUE / FALSE de style C comme tous les consts, en majuscules, jusqu'à ce que je prenne le train en marche PSR .
Section 2.5 du PSR-2:
Donc, fondamentalement, si vous voulez jouer gentiment avec des détails de style open source, les booléens doivent être en minuscules.
la source
Cela n'a pas d'importance,
true
c'est exactement la même choseTRUE
. Il en va de même pourfalse
etnull
. Je n'ai jamais entendu dire que cela aurait eu de l'importance à aucun moment.La seule façon de gâcher les choses est de citer ces valeurs, par exemple:
La seule chose qui vous restreint ou vous encourage à utiliser des majuscules ou des minuscules peut être votre entreprise ou vos propres directives de codage. En dehors de cela, vous êtes libre d'utiliser l'un ou l'autre et cela ne causera aucun problème.
la source
false
et cenull
serait pareil. J'ai dit que "il en va de même pourfalse
etnull
", ce qui signifie que les deux peuvent être exprimés en lettres minuscules ou majuscules.J'ai écrit du code simple pour vérifier les différences entre false et FALSE : chaque itération faisait quelque chose qui:
Voici les résultats:
On voit donc que les performances sont très légèrement touchées par le cas des booléens - les minuscules sont plus rapides. Mais vous ne verrez certainement pas.
la source
Personnellement, j'ai toujours utilisé la forme minuscule, mais pour aucune raison particulière autre que pour rendre mon code bien rangé, le seul endroit où j'utilise des lettres majuscules est quand les noms de classe de casse et les noms de variables de chameau.
Un avantage de l'utilisation des majuscules qui me vient à l'esprit est qu'elles ressortent et sont faciles à trouver dans le code.
la source
Je suis tombé sur cette vieille question en me posant la même chose. Bon point avec define ('TRUE', false); define ('FALSE', true); Ne s'applique pas à php5 cependant. Ecrire ces lignes dans un code php5 revient à écrire un commentaire.
la source
Voici mon TEST sur Windows 7x64bit Apache / 2.4.9 PHP / 5.5.14
Cette fois, FALSE a gagné 20 fois. Donc, les majuscules sont plus rapides dans mon environnement.
la source