Menjelaskan Perbezaan antara | dan || (Atau) Operator
Pengaturcara biasanya menggunakan || (double pipe) operator untuk ungkapan OR dalam pelbagai bahasa seperti C# dan PHP. Walau bagaimanapun, sesetengah mungkin kadangkala menghadapi penggunaan paip tunggal (|). Memahami perbezaan mereka adalah penting.
Gelagat Litar Pintas
Sama seperti rakan sejawat mereka, & dan &&, pengendali paip berkembar berkelakuan sebagai pengendali litar pintas. Ia menilai keadaan secara berurutan, hanya meneruskan ke seterusnya jika yang semasa adalah palsu.
Sebagai contoh, kod berikut hanya akan menyemak syarat 2 dan 3 jika syarat 1 adalah benar:
if (condition1 || condition2 || condition3)
Sebaliknya, operator paip tunggal tidak melakukan litar pintas. Ia menilai semua syarat tanpa mengira keputusan yang terdahulu:
if (condition1 | condition2 | condition3)
Ini boleh membawa kepada manfaat prestasi jika penilaian keadaan adalah mahal dari segi pengiraan.
Kaveat Berpotensi
Walau bagaimanapun, terdapat kaveat yang perlu dipertimbangkan apabila menggunakan paip tunggal pengendali:
if (class != null || class.someVar < 20)
Menggunakan || di sini mungkin tidak membuang NullReferenceException seperti dalam || kes, tetapi ia masih menjadi pertimbangan penting.
Operasi Bitwise
Di luar ungkapan logik, | dan & juga boleh melakukan operasi bitwise, memanipulasi perwakilan binari nombor pada tahap bit.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Operator `|` dan `||` (ATAU) dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!