Về TRUE và FALSE trong PHP

Trên trang php.net mở đầu phần giới thiệu bằng câu “This is the simplest type” tức “Đây là kiểu đơn giản nhất”. Nhưng nếu đọc thêm thông tin bên dưới, bạn sẽ thấy thực ra nó không đơn giản tí nào. Và nếu chúng ta không để ý sẽ lẫn như chơi thôi.

True và False là kiểu dữ liệu Boolean, tức là nó tương ứng với 2 giá trị đúng hoặc sai, trong đó true là đúng, còn false là sai. PHP không phân biệt chữ hoa chữ thường, do vậy bạn viết true, TRUE hay True đều được, tương tự với false cũng như thế, FALSEFalse cũng được.

Trong PHP, true và false thường được áp dụng trong câu lệnh điều kiện, ví dụ như if, nếu đúng thì làm điều gì nó, còn nếu sai thì làm gì. Nếu đúng ở đây tức là true, nếu không ở đây tức là false.


Chuyển đổi sang boolean

Để chuyển đổi rõ ràng một giá trị thành bool, bạn có thể sử dụng (bool) hoặc (boolean). Tuy nhiên trong phần lớn trường hợp, việc ép kiểu là không cần thiết, vì giá trị sẽ tự động được chuyển đổi nếu một toán tử, hàm hoặc cấu trúc điều khiển yêu cầu một đối số bool.

Khi chuyển đổi sang kiểu dữ liệu boolean, các giá trị dưới đây mặc định được xem là false:

  • giá trị boolean false tự nó là false rồi, ví dụ bạn khai báo $x = false, thì $x là boolean false;
  • số nguyên 0 được coi là false;
  • số thực 0.0 và -0.0 được xem là false;
  • chuỗi rỗng và chuỗi “0” được xem là false;
  • mảng không có phần tử nào được xem là false;
  • kiểu giá trị NULL cũng là false;

Mọi giá trị khác sẽ được xem là true.

Chú ý: -1 được coi là true, bất kỳ số nào cũng được coi là true, ngoại trừ số 0, bất kể nó là số dương hay số âm!

Bạn hãy nhìn kết quả true, false bên dưới để biết thêm về kiểu dữ liệu này:

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) "0");       // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>

Lưu ý khi sử dụng hàm điều kiện với một biến

Cách sử dụng hàm điều kiện kiểu như:

if($con){// câu lệnh}

Rất hay được dùng vì nó tiện, chúng ta không phải viết thêm toán tử so sánh như == hay >

Chúng ta hay làm điều này khi gán $con là 0 hoặc 1, tương ứng với false và true.

Nhưng với chú ý trên thì chúng ta phải hết sức cẩn trọng với TRUE, bởi vì với bất kỳ giá trị nào của $con mà khác 0 (dù là số âm, hay dương, hay ký tự) nó cũng đều thành true hết.