Trong bài này, chúng ta sẽ tìm hiểu kỹ về kiểu dữ liệu boolean trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Kiểu dữ liệu boolean trong PHP
Kiểu dữ liệu boolean còn gọi là kiểu luận lý (logic) hoặc kiểu bool. Kiểu dữ liệu boolean chỉ lưu trữ 2 giá trị: TRUE hoặc FALSE. Trong PHP, giá trị true và false không phân biệt chữ hoa, chữ thường. Chúng ta có thể viết true/TRUE/True hoặc false/FALSE/False đều được.
Giá trị kiểu NULL cũng được coi là FALSE trong boolean. Ngoài NULL, 0 cũng được coi là FALSE trong boolean. Nếu một chuỗi (string) rỗng (empty) thì nó cũng được coi là FALSE trong boolean.
<?php
$x = TRUE;
$y = FALSE;
$a = NULL;
$b = 0;
$c = "";
var_dump($x);
var_dump($y);
var_dump($a);
var_dump((bool)$b);
var_dump((bool)$c);
?>
Kết quả
bool(true) bool(false) NULL bool(false) bool(false)
Một số giá trị trong PHP tương đương với kiểu dữ liệu boolean như sau:
- Số nguyên khác 0 chuyển thành true, số 0 chuyển thành false.
- Số thực bằng 0.0 chuyển thành false, còn lại là true.
- Chuỗi (string) khác rỗng (empty) chuyển thành true, chuỗi rỗng chuyển thành false.
- Giá trị NULL tương đương với false.
- Mảng (array) không có phần tử nào tương đương với false.
<?php
// số nguyên khác 0
$x = 1;
var_dump((bool)$x);//bool(true)
// số 0
$x = 0;
var_dump((bool)$x);//bool(false)
// số thực khác 0.0
$x = 1.2;
var_dump((bool)$x);//bool(true)
// số thực 0.0
$x = 0.0;
var_dump((bool)$x);//bool(false)
// chuỗi (string) khác rỗng
$x = '12a';
var_dump((bool)$x);//bool(true)
// chuỗi (string) rỗng
$x = '';//hoặc ""
var_dump((bool)$x);//bool(false)
// NUll tương đương false
$x = NULL;
var_dump((bool)$x);//bool(false)
// mảng (array) rỗng
$x = [];
var_dump((bool)$x);//bool(false)
?>
2. Một số hàm trả về kiểu boolean trong PHP
Hàm is_bool()
trong PHP giúp kiểm tra giá trị của một biến có phải kiểu bool/boolean hay không. Để chuyển đổi các kiểu dữ liệu khác về bool/boolean, chúng ta có thể sử dụng các hàm ép kiểu (type casting) như (bool), (boolean) hoặc boolval().
<?php
$x = true;
echo 'Is $x bool? ';
var_dump(is_bool($x));
$y = 'a';
echo '<br>Is $y bool? ';
var_dump(is_bool($y));
echo '<br>Is $y existing? ';
var_dump(isset($y));
?>
Kết quả
Is $x bool? bool(true)
Is $y bool? bool(false)
Is $y existing? bool(true)
Các hàm kiểm tra kiểu dữ liệu is_int(), is_double(), is_float() , is_string() hoặc hàm kiểm tra sự tồn tại của biến isset() cũng trả về kiểu boolean.