So sánh không nghiêm ngặt giá trị logic trong PHP
Trong ví dụ trước, tôi đã sử dụng toán tử
=== để so sánh.
Trong trường hợp này, biến của chúng ta
được so sánh với true về
cả giá trị lẫn kiểu dữ liệu.
Trong nhiệm vụ của chúng ta, cũng có thể sử dụng toán tử
==. Nếu trong biến test
luôn là một trong các giá trị true
hoặc false, thì không có gì thay đổi:
<?php
$test = true; // ở đây chúng ta viết true hoặc false
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Tuy nhiên, nếu biến $test có thể
chứa bất kỳ giá trị nào, thì mọi thứ trở nên
phức tạp hơn nhiều. Trong trường hợp như vậy, nếu trong biến
không phải là giá trị boolean, thì giá trị đó
trước tiên sẽ được chuyển đổi thành boolean và chỉ
sau đó mới được so sánh.
Ví dụ, giả sử trong biến của chúng ta là
số 1. Trong trường hợp này, nó đầu tiên
sẽ được chuyển đổi sang kiểu logic, tức là
thành true. Và sau đó sẽ thực hiện so sánh:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // cái này sẽ chạy, vì 1 == true là đúng
} else {
echo '---';
}
?>
Còn ví dụ, số 0 sẽ được chuyển đổi
thành false. Và điều kiện của chúng ta kết quả
sẽ là sai:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // cái này sẽ chạy, vì 0 == true là KHÔNG đúng
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>