Computer >> Máy Tính >  >> Lập trình >> PHP

So sánh giữa toán tử &&và AND trong PHP.

PHP cung cấp các toán tử đáng kinh ngạc để thực hiện các phép toán như số học, phép gán, so sánh và nhiều hơn nữa ... Trong bài viết này, tầm quan trọng hơn sẽ được đề cập đến các toán tử logic "&&" và "AND" và sẽ nghiên cứu cách chúng có thể được sử dụng dựa trên quyền ưu tiên. Các toán tử logic "&&" và "AND" tạo ra kết quả là true-or-false và do đó chúng còn được gọi là toán tử Boolean.

Trước khi đi sâu tìm hiểu toán tử "AND" là gì? Toán tử "AND" trả về true nếu và chỉ khi cả hai điều kiện đều đúng. Hãy lấy một ví dụ để minh họa toán tử "AND".

Ví dụ

<?php
   $val1 = 20;
   $val2 = 50;
   if ($val1 == 20 and $val2== 50)
      echo "True";
   else
      echo "False";
?>

Đầu ra:

True

Giải thích:

Vì biến $ val1 =20 và $ val2 =50 nên điều kiện $ val1 ==20 cho giá trị true và $ val2 ==50 cũng cho kết quả là true. Do đó, cả hai toán hạng đều đúng, kết quả cũng đúng. Hãy thảo luận một ví dụ khác.

Ví dụ 2:

<?php
   $a = 30;
   $b = 50;
   if ($a == 30 and $b == 10)
      echo "True";
   else
      echo "False";
?>

Đầu ra:

False

Giải thích:

Vì chúng ta đã khai báo biến $ a =30 và $ b =50, điều kiện $ a ==30 trả về true nhưng khi nhập $ b =50 trong khai báo và trong điều kiện $ b ==10 mà trả về false, vì vậy kết quả hoạt động AND sẽ là false.

Bây giờ đến với toán tử "&&", nó cũng hoạt động giống như toán tử "AND", nó trả về true nếu cả hai điều kiện / toán hạng đều đúng trong biểu thức. Bây giờ chúng ta hãy xem ví dụ dưới đây triển khai các toán tử "&&".

Ví dụ:

<?php
   $val1 = 25;
   $val2 = 5;
   if ($val1 == 25 && pow($val2, 2) == $val1)
      echo "True";  
   else
      echo "False";
?>

Đầu ra:

True

Giải thích:

Vì biến $ val1 =25 và $ val2 =5 nên điều kiện $ val1 ==25 cho kết quả là true và pow ($ val2, 2) ==$ val1 cũng cho kết quả là true vì $ val2 =5 được nâng lên thành lũy thừa của 2 là 25 tương đương với $ val1. Do đó, '$ val1 ==25 &&pow ($ val2, 2) ==$ val1' đánh giá là true vì logic AND cho biết rằng chỉ khi cả hai toán hạng đều đúng, thì kết quả hoạt động AND mới là true.

Lưu ý:

Hãy lấy một trường hợp khác, Nếu chúng ta khai báo đầu vào $ val2 =20, điều kiện pow ($ val2, 2) ==$ val1 sẽ cho kết quả là false, vì vậy kết quả hoạt động AND sẽ là false.

Bây giờ thảo luận về sự so sánh giữa toán tử "AND" và "&&" về mức độ ưu tiên của chúng. Các phép toán được thực hiện theo thứ tự ưu tiên của các toán tử trong một biểu thức. Mức độ ưu tiên của toán tử '&&' cao và ưu tiên của toán tử "AND" thấp. Hãy cùng nghiên cứu sự khác biệt trên qua ví dụ dưới đây.

<?php
   $a =10;
   $b = NULL;
   $val = $a && $b;
   echo ($val ? 'TRUE' : 'FALSE'),"\n";
   $val = $a and $b;
   echo ($val ? 'TRUE' : 'FALSE');
?>

Đầu ra:

FALSE
TRUE

Giải thích:

Kết quả của cả hai toán tử là khác nhau bất cứ khi nào các toán hạng giống nhau. Biểu thức đầu tiên phát biểu thành FALSE trong khi biểu thức thứ hai nói rõ là TRUE mặc dù thực tế là cả hai đều đang sử dụng một hoạt động tương tự.

Biểu thức đầu tiên, $ val =$ a &&$ b; nói rõ thành FALSE vì thao tác "&&" đầu tiên được thực hiện, sau đó kết quả được gán cho biến $ val vì ưu tiên của toán tử &&cao hơn ưu tiên của toán tử "=".

Biểu thức thứ hai, $ bool =$ a và $ b; đánh giá là TRUE vì toán tử “và” có mức độ ưu tiên thấp hơn toán tử "=" vì vậy giá trị của biến $ a =10 ở bên phải của =được gán cho $ val, vì vậy $ val giữ 10 rồi đến "và "hoạt động được thực hiện nội bộ nhưng không được chỉ định, do đó $ val hiện giữ TRUE.

Vì vậy, để làm rõ, sự khác biệt chính giữa toán tử "AND" và toán tử "&&" là mức độ ưu tiên của chúng nhưng cả hai đều thực hiện một hoạt động tương tự.