2 Câu Trả Lời

Nguyễn Duy

Giữa &&AND có một sự khác biệt nhỏ mà ít lập trình viên để ý tới đó là khi nhắc tới thứ tự ưu tiên của toán tử (hay operator precedence).

Để hiểu về sự khác biệt này chúng ta bắt đầu bằng một ví dụ cụ thể như sau:

$tBool = true;
$fBool = false;

$aBool = $tBool AND $fBool;

Theo bạn thì giá trị của biến $aBool sẽ là gì?

Không ít các lập trình viên có nhiều năm kinh nghiệm đưa ra trả lời sau:

Biểu thức $tBool AND $fBool trả về FALSE và giá trị này sẽ được gán cho biến $aBool do đó biến $aBool sẽ có giá trị là FALSE.

Tuy nhiên giá trị của biến $aBool trong trường hợp này là TRUE!

Tại sao?

Nguyên nhân ở đây là bởi vì toán tử AND có mức độ ưu tiên thấp hơn toán tử gán giá trị =. Dó đó biểu thức ngoài cùng bên tay trái $aBool = $tBool sẽ được thực hiện trước. Do đó biến $aBool sẽ nhận giá trị là TRUE.

Tuy nhiên với đoạn mã sau:

$tBool = true;
$fBool = false;

$aBool = $tBool && $fBool;

Thì biến $aBool lại có giá trị là FALSE. Lúc này toán tử && có mức độ ưu tiên cao hơn toán tử = và do đó biểu thức $tBool && $fBool sẽ được đánh giá trước và kết quả cuối cùng trả về (là FALSE) sẽ được dùng để gán giá trị cho biến $aBool.

Kết luận: Bạn nên sử dụng && thay vì AND vì sẽ tránh rơi vào các trường hợp dễ gây nhầm lẫn như trên, dễ phát sinh ra lỗi trong chương trình.

Thêm bình luận
Huỷ
Trung Quân

Việc sử dụng toán tử nào là tuỳ vào tập quán và sở thích cá nhân của mỗi người.

Theo ý kiến cá nhân của mình thì nên sử dụng && thay vì AND lý do là tốn ít thời gian hơn để gõ chữ và ngoài ra thì mình thấy rất nhiều lập trình viên cũng dùng hai ký tự này với phép toán logic .

Thêm bình luận
Huỷ

Thêm Trả Lời

Câu Hỏi Liên Quan