Php và toán tử OR trong PHP

Php và toán tử OR trong PHP

Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về toán tử PHP OR (||) và cách sử dụng nó để xây dựng biểu thức logic phức tạp.

Giới thiệu về toán tử OR trong PHP

Toán tử logic OR chấp nhận hai toán hạng và trả về true nếu bất kỳ toán hạng nào là true; nếu không, nó trả về false. Nói cách khác, toán tử OR logic trả về false nếu cả hai toán hạng đều là false.

Để biểu thị toán tử OR logic, PHP sử dụng từ khóa or hoặc || như sau:

expression1 or expression2

Hoặc

expression1 || expression2

Bảng dưới đây minh họa kết quả của toán tử or:

expression1 expression2 expression1 || expression2
true true true
true false true
false true true
false false false

Lưu ý rằng các từ khóa or, Or, và OR là giống nhau vì từ khóa PHP không phân biệt chữ hoa chữ thường.

Các toán tử ||or trả về cùng kết quả. Sự khác biệt duy nhất giữa các toán tử ||or là mức độ ưu tiên của chúng. Toán tử or có mức độ ưu tiên cao hơn so với toán tử ||.

Ví dụ về toán tử OR trong PHP

Giả sử bạn cần xóa bộ nhớ cache của trang web nếu cờ $exprired hoặc $purge được đặt thành true. Để làm điều đó, bạn có thể sử dụng toán tử OR logic như sau:

<?php

$expired = true;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

Kết quả:

bool(true)

$expiredtrue, kết quả của toán tử OR cũng là true.

Tuy nhiên, nếu bạn thay đổi $expired thành false, kết quả sẽ là false như được hiển thị trong ví dụ sau:

<?php

$expired = false;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

Trong thực tế, bạn thường sử dụng toán tử OR logic trong các câu lệnh if, if-else, if-elseif, while, và do-while .

Rút ngắn đường

Khi toán hạng đầu tiên là true, toán tử OR logic biết rằng kết quả cũng phải là true. Trong trường hợp này, nó không đánh giá toán hạng thứ hai. Quá trình này được gọi là rút ngắn đường.

Trong thực tế, bạn thường thấy rằng toán tử or được sử dụng theo mẫu sau:

function_call() || die(message)

Nếu function_call() trả về true, nó đã thành công. PHP sẽ không bao giờ thực thi toán hạng thứ hai là cuộc gọi hàm die(). Ngược lại, PHP sẽ gọi hàm die() với thông báo lỗi.

Ví dụ:

<?php

function connect_to_db()
{
	return false;
}

connect_to_db() || die('Không thể kết nối đến cơ sở dữ liệu.');

Kết quả:

Không thể kết nối đến cơ sở dữ liệu

Trong ví dụ này, hàm connect_to_db() trả về false, PHP gọi hàm die() hiển thị thông báo lỗi.

Những vấn đề với toán tử OR trong PHP

Xem ví dụ sau:

<?php

$result = false or true;

var_dump($result);

Kết quả:

bool(false)

Trong ví dụ này, bạn sẽ mong đợi rằng $result là true vì biểu thức false or true trả về true. Tuy nhiên, thực tế không phải như vậy.

Khi đánh giá câu lệnh sau:

$result = false or true;

PHP sẽ đánh giá $result = false trước và sau đó là toán tử or vì toán tử = có mức độ ưu tiên cao hơn toán tử or.

Chú ý rằng mỗi toán tử có mức độ ưu tiên. Và PHP sẽ đánh giá toán tử có mức độ ưu tiên cao hơn trước các toán tử có mức độ ưu tiên thấp.

Kỹ thuật, nó tương đương với câu lệnh sau:

($result = false) or true;

Do đó, $result được gán giá trị false.

Để sửa điều này, bạn cần sử dụng dấu ngoặc để thay đổi thứ tự đánh giá:

<?php

$result = (false or true);

var_dump($result);

Kết quả:

bool(true)

Hoặc bạn có thể sử dụng toán tử ||:

<?php

$result = false || true;
var_dump($result);

Kết quả:

bool(true)

Do đó, đây là một thói quen tốt luôn sử dụng toán tử || thay vì toán tử or.

Tóm tắt

  • Sử dụng toán tử OR trong PHP (or, ||) để kết hợp hai biểu thức và trả về true nếu một trong hai biểu thức là true; nếu không, nó trả về false.
  • Toán tử OR logic là rút ngắn đường.
  • Sử dụng toán tử || thay vì toán tử or.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...