PHP küçük harf vs Büyük'ü Booleans

6 Cevap php

Ben PHP öğrenme zaman, ben her zaman booleans harf sürümlerini kullanmanız gerektiğini okumuştum, TRUE ve FALSE, çünkü "normal" küçük versiyonları, {[(2) ]} ve false, kullanımı "güvenli" değildi.

Şimdi yıllar olmuştur ve ben yazdım her PHP komut büyük sürümü kullanır oluyor. Şimdi olsa, ben küçük versiyonu (yani Zend Framework) ile yazılmış PHP bol gördüğümüz gibi, bu sorguluyorum.

/ Büyük sürümü kullanmak için bir neden orada hiç oldu mu, ya da küçük harf kullanın için Tamam mükemmel olduğunu?

edit: bu da NULL ve null için geçerli olduğunu söylemeyi unuttum.

6 Cevap

official PHP manual diyor ki:

To specify a boolean literal, use the keywords TRUE or FALSE. Both are case-insensitive.

Yani evet, true === TRUE ve false === FALSE.

Kişisel, ancak, TRUE true üzerinden ve FALSE false okunabilirlik nedenlerle fazla tercih ederim. Bu OR üzerinde or veya || kullanarak benim tercihi için aynı sebep ve [(8)] {üzerinde AND kullanarak } veya &&.

define('TRUE', false);
define('FALSE', true);

Mutlu ayıklama! (PHP <5.1.3 (2 May 2006), Demo bakınız)

Edit: Uppercase bool değerlerden oluşan sabitler ve küçük harflerle değerlerdir. Kolayca değiştirebilirsiniz, hangi değil sürekli olarak, değer ilgilendi.


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

Commits d51599dfcd3282049c7a91809bb83f665af23b69 (ve 6f76b17079a709415195a7c27607cd52d039d7c3)

Küçük harf kullanın.

  1. Bu tip kolay. (IMO)
  2. Bu okumak daha kolay. (IMO)
  3. JavaScript booleans küçük ve harf duyarlıdır.

Bu true TRUE tam olarak aynıdır, farketmez. Aynı false ve null için de geçerlidir. Ben herhangi bir noktada önemi olacağını duymadım.

Eğer berbat şeyler olabilir tek yolu, örneğin, bu değerleri alıntı tarafından:

$foo = false;   // FALSE
$bar = "false"; // TRUE

$foo2 = true;   // TRUE
$bar2 = "true"; // TRUE

$foo3 = null;   // NULL
$bar3 = "null"; // TRUE

Kısıtlayan veya üst ya da küçük şirket ya da kendi kodlama kurallar olabilir kullanmaya teşvik tek şey. Bunun dışında, ikisinden birini kullanmak için ücretsiz konum ve herhangi konularda yol olmaz.

Şahsen her zaman küçük harf formu kullandım, ama ne zaman deve kasa sınıf adları ve değişken adları kodumu düzenli görünmesi için başka özel bir nedeni yok, ben büyük harf kullanmak tek yerdir.

Akla gelen büyük harf kullanmanın bir avantajı olsa da onlar dışarı sopa ve kod bulmak kolay olmasıdır.

I've written simple code to check the differences between false and FALSE: Each iteration was doing something that:

    for ($i = 0; $i < self::ITERATIONS; ++$i) {
       (0 == FALSE) ;
    }

İşte sonuçlar:

Iterations: 100000000
using 'FALSE': 25.427761077881 sec
using 'false': 25.01614689827 sec

Bu yüzden bu performans çok hafif booleans durumda değdiği görebilirsiniz - küçük hızlıdır. Ama kesinlikle görmezsiniz.