Jika Anda menggunakan ANDdan OR, pada akhirnya Anda akan tersandung oleh sesuatu seperti ini:
$this_one = true;
$that = false;
$truthiness = $this_one and $that;
Ingin menebak apa yang $truthinesssetara?
Jika Anda mengatakan false... bzzzt, maaf, salah!
$truthinessdi atas memiliki nilai true. Mengapa? =memiliki prioritas lebih tinggi dari and. Penambahan tanda kurung untuk menunjukkan urutan tersirat membuat ini lebih jelas:
($truthiness = $this_one) and $that
Jika Anda menggunakan &&alih-alih anddalam contoh kode pertama, itu akan berfungsi seperti yang diharapkan dan menjadi false.
Sebagaimana dibahas dalam komentar di bawah, ini juga berfungsi untuk mendapatkan nilai yang benar, karena tanda kurung memiliki prioritas lebih tinggi daripada =:
$truthiness = ($this_one and $that)
~operator bit-wise BUKAN dan bukan logis. ;-)