Menggunakan Operator ATAU dalam Pengaturcaraan: | vs ||
Apabila bekerja dengan ungkapan OR dalam bahasa pengaturcaraan seperti C# dan PHP, adalah perkara biasa untuk menggunakan pengendali paip berganda (||). Walau bagaimanapun, kadangkala, paip tunggal (|) juga digunakan. Apakah perbezaan antara kedua-dua operator ini?
Gelagat Litar Pintas
Paip berkembar (||) ialah pengendali "litar pintas". Ini bermakna bahawa dalam ungkapan ATAU yang melibatkan berbilang syarat, jika syarat pertama dinilai kepada benar, syarat yang selebihnya tidak akan dinilai.
Contohnya:
if (condition1 || condition2 || condition3)
Jika syarat1 adalah benar, penilaian berhenti, dan syarat2 dan syarat3 tidak disemak.
Biasa Penilaian
Sebaliknya, operator paip tunggal (|) melakukan penilaian biasa. Ini bermakna ia akan sentiasa menilai semua syarat dalam ungkapan OR, tanpa mengira hasil daripada syarat pertama.
if (condition1 | condition2 | condition3)
Dalam contoh ini, ketiga-tiga syarat akan dinilai, walaupun syarat1 adalah benar.
Kaveat Berpotensi
Walaupun pengendali paip tunggal (|) umumnya memberikan prestasi yang lebih baik, ia mempunyai satu potensi kaveat. Tidak seperti litar pintas OR, pengendali OR biasa tidak berhenti menilai apabila ia menghadapi rujukan nol atau ralat serupa.
Contohnya:
if (class != null || class.someVar < 20)
Jika kelas batal, kelas biasa OR operator masih akan cuba menilai class.someVar, menghasilkan a NullReferenceException.
Operasi Bitwise
Selain penggunaannya dalam ungkapan OR, | dan & operator juga boleh digunakan untuk operasi bitwise. Dalam konteks ini, mereka melakukan operasi binari pada perwakilan binari operan mereka.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Operator `||` dan `|` dalam Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!