Ketika saya belajar PHP, saya membaca di suatu tempat bahwa Anda harus selalu menggunakan versi boolean huruf besar, TRUE
dan FALSE
, karena versi huruf kecil "normal", true
dan false
, tidak "aman" untuk digunakan.
Sekarang sudah bertahun-tahun, dan setiap skrip PHP yang saya tulis menggunakan versi huruf besar. Sekarang, saya mempertanyakan hal itu, karena saya telah melihat banyak PHP ditulis dengan versi huruf kecil (yaitu Zend Framework).
Apakah / Apakah ada alasan untuk menggunakan versi huruf besar, atau apakah boleh-boleh saja menggunakan huruf kecil?
sunting: Lupa menyebutkan bahwa ini berlaku untuk NULL
dan null
juga.
php
language-history
Austin Hyde
sumber
sumber
Jawaban:
The PHP pengguna resmi mengatakan:
Jadi ya,
true === TRUE
danfalse === FALSE
.Secara pribadi, bagaimanapun, saya lebih memilih
TRUE
lebihtrue
danFALSE
lebihfalse
untuk alasan dibaca. Itu alasan yang sama untuk preferensi saya menggunakanOR
lebihor
atau||
, dan menggunakanAND
lebihand
atau&&
.Standar PSR-2 mensyaratkan
true
,false
dannull
harus dalam huruf kecil.sumber
OR
dan||
merupakan operator yang berbeda dalam PHP (karena mereka memiliki prioritas yang berbeda), sebagaimana adanyaAND
dan&&
. (Jadi misalnya&&
dan||
lebih diutamakan daripada operator penugasan, tetapiOR
danAND
tidak.)Selamat men-debug! (PHP < 5.1.3 (2 Mei 2006) , lihat Demo )
Sunting: Bool huruf besar adalah konstanta dan huruf kecil adalah nilai. Anda tertarik pada nilainya, bukan pada konstanta, yang dapat dengan mudah berubah.
sumber
T_NULL
,T_TRUE
danT_FALSE
pada saat parse), adalah kasus-sensitif, sehingga menggunakanNULL
sebenarnya tidak ada "konstan" --- kecuali Anda membuatnya konstan, menggunakandefine()
. Cukup menggunakanNULL
atauTRUE
tidak berarti itu adalah konstanta, seolah-olah tidak ada konstanta seperti itu, PHP mengartikannya sebagai literal. Deskripsi yang lebih akurat adalah bahwa versi huruf kecil tidak dapat didefinisikan ulang, sedangkan variasi huruf lainnya dapat .Gunakan huruf kecil.
sumber
Jika Anda berniat menggunakan JSON, maka RFC7159 mengatakan:
Dari daftar perubahan yang tidak kompatibel ke belakang di PHP 5.6 :
Menurut standar PSR-2 :
sumber
json_encode(TRUE)
danjson_encode(true)
hasil'true'
.Saya biasa melakukan boolean C style TRUE / FALSE seperti semua const, dalam semua topi, sampai saya mendapatkan PSR kereta musik .
Bagian 2.5 dari PSR-2:
Jadi pada dasarnya, jika Anda ingin bermain baik dengan keterangan gaya sumber terbuka, Boolean harus huruf kecil.
sumber
Tidak masalah,
true
persis sama denganTRUE
. Sama berlaku untukfalse
dannull
. Saya belum pernah mendengar bahwa itu akan menjadi masalah pada titik mana pun.Satu-satunya cara Anda dapat mengacaukan segalanya adalah dengan mengutip nilai-nilai itu, misalnya:
Hanya hal yang membatasi atau mendorong Anda untuk menggunakan huruf besar atau kecil mungkin panduan perusahaan atau kode Anda sendiri. Selain itu, Anda bebas untuk menggunakan salah satunya dan itu tidak akan menyebabkan masalah apa pun.
sumber
false
dannull
akan sama. Saya mengatakan bahwa "sama berlaku untukfalse
dannull
", yang berarti bahwa keduanya dapat diekspresikan dalam huruf kecil atau besar.Saya telah menulis kode sederhana untuk memeriksa perbedaan antara false dan FALSE : Setiap iterasi melakukan sesuatu yang:
Inilah hasilnya:
Jadi kita dapat melihat bahwa kinerja sangat sedikit tersentuh oleh case boolean - huruf kecil lebih cepat. Tapi tentu saja Anda tidak akan melihat.
sumber
Secara pribadi saya selalu menggunakan bentuk huruf kecil, tetapi tanpa alasan tertentu selain untuk membuat kode saya terlihat rapi, satu-satunya tempat saya menggunakan huruf kapital adalah ketika nama kelas casing unta dan nama variabel.
Satu keuntungan menggunakan huruf besar yang muncul dalam pikiran adalah bahwa mereka menonjol dan mudah ditemukan dalam kode.
sumber
Saya menemukan pertanyaan lama ini sambil bertanya pada diri sendiri hal yang sama. Poin bagus dengan define ('TRUE', false); define ('FALSE', true); Tidak berlaku untuk php5. Menulis baris-baris itu dalam kode php5 seperti menulis komentar.
sumber
Inilah TEST saya di Windows 7x64bit Apache / 2.4.9 PHP / 5.5.14
Kali ini SALAH menang 20 kali. Jadi huruf besar lebih cepat di lingkungan saya.
sumber