Apa perbedaan antara =
, ==
dan ===
?
Saya pikir menggunakan satu tanda sama adalah untuk mendeklarasikan variabel sementara dua tanda sama untuk kondisi perbandingan dan terakhir tiga tanda sama untuk membandingkan nilai variabel yang dideklarasikan.
php
comparison
operators
Stroberi
sumber
sumber
=
javascript. Itu tidak hanya berlaku untuk PHP tetapi juga bahasa lain.Jawaban:
Anda memiliki
=
satu operator penugasan ,==
para operator perbandingan 'sama' dan===
para operator perbandingan 'identik' .Untuk info lebih lanjut tentang perlunya
==
dan===
, dan situasi untuk menggunakan masing-masing, lihat dokumen .sumber
===
dengan objek memberi tahu Anda jika mereka adalah objek yang sama, bukan jika mereka memiliki konten yang sama.=
adalah operator penugasan==
adalah operator pembanding (memeriksa apakah dua variabel memiliki nilai yang sama)===
adalah operator pembanding yang identik (memeriksa apakah dua variabel memiliki nilai yang sama dan bertipe sama).sumber
= operator penugasan
== memeriksa apakah dua variabel memiliki nilai yang sama
=== memeriksa apakah dua variabel memiliki nilai yang sama DAN jika jenisnya sama
sumber
Operator = memberikan nilai ke variabel $ enam = 6; nilai 6 ditugaskan ke variabel $ enam
== operator memeriksa apakah nilai kedua variabel sama dan sebagian besar digunakan dalam kondisi seperti pernyataan if
=== Operator mirip dengan == (periksa apakah nilainya sama) dan juga periksa apakah keduanya dari tipe data yang sama
// di sini $ a adalah tipe int sedangkan $ b adalah tipe string. Jadi di sini hasilnya
sumber
Untuk pengguna PHP tingkat lanjut, mengetahui perbedaan antara
==
dan===
bertanya pada diri sendiri "apakah lebih cepat untuk membandingkan dengan==
atau dengan===
ketika saya yakin bahwa kedua operan adalah tipe yang sama?"Jawaban singkat dan umum adalah: Tidak ada keuntungan kinerja dalam menggunakan
===
dalam hal ini, jadi sebaiknya Anda gunakan==
.Untuk yang tertarik melakukan benchmark sendiri, Anda dapat menggunakan kode berikut yang saya tulis ad-hoc dan mencoba nilai yang berbeda untuk
$a
dan$b
:CATATAN: Perbandingan ini hanya berlaku ketika setiap "COBA PERTAMA" sangat dekat dengan "COBA KEDUA". Jika mereka berbeda secara signifikan, itu berarti bahwa prosesor sedang sibuk melakukan sesuatu yang lain saat menjalankan perbandingan dan hasilnya hasilnya tidak dapat diandalkan dan benchmark harus dijalankan lagi.
sumber
==
atau===
sebagai penyebab masalah kinerja Anda. IMO: Lebih baik bersikap ketat (===
) kecuali jika Anda secara eksplisit ingin longgar (==
) tentang perbandingan Anda. Jumlah kasus tepi yang aneh yaitu"5 is not a number" == 5
dapat menyebabkan bug aneh.===
tidak pernah menderita masalah ini.===
untuk alasan kinerja, mereka salah. Jadi programmer bebas memilih===
atau==
berdasarkan alasan logis tetapi tidak pada alasan kinerja: ada kasus yang berbeda untuk memilih satu atau yang lain dan kinerja tidak boleh diperhitungkan sama sekali.