Hàm is_resource() trong PHP dùng để kiểm tra biến có phải là tài nguyên hay không, thường dùng để kiểm tra kết nối tới cơ sở dữ liệu.
is_resource ( mixed $var ) : bool
– Hàm trả về TRUE nếu biến truyền vào là một kết nối hợp lệ.
– Trả về FALSE nếu biến truyền vào là một kết nối không hợp lệ.
<?php $db_link = @mysql_connect('localhost', 'codetutam', ''); if (!is_resource($db_link)) { die('Kết nối thất bại : ' . mysql_error()); } ?>
<?php $a = fopen('http://www.google.com', 'r'); var_dump(is_resource($a)); var_dump(is_scalar($a)); //bool(true) //bool(false) fclose($a); var_dump(is_resource($a)); var_dump(is_scalar($a)); //bool(false) //bool(false) ?>
Đó là lý do tại sao một số người khác ở đây đã nhầm lẫn và nghĩ ra một số “giải pháp” phức tạp (xấu) để phát hiện tài nguyên … Có một giải pháp tốt hơn nhiều … Thực tế, tôi chỉ trình bày ở trên, nhưng đây là một ví dụ đầy đủ hơn:
<?php $a = fopen('http://www.google.com', 'r'); var_dump(is_resource($a)); var_dump(is_scalar($a)); var_dump(is_object($a)); var_dump(is_array($a)); var_dump(is_null($a)); //bool(true) //bool(false) //bool(false) //bool(false) //bool(false) ?>
Vì vậy, làm thế nào để bạn kiểm tra nếu một cái gì đó là một tài nguyên?
<?php $a = fopen('http://www.google.com', 'r'); $isResource = is_resource($a) || ($a !== null && !is_scalar($a) && !is_array($a) && !is_object($a)); var_dump($isResource); //bool(true) fclose($a); var_dump(is_resource($a)); //bool(false) $isResource = is_resource($a) || ($a !== null && !is_scalar($a) && !is_array($a) && !is_object($a)); var_dump($isResource); //bool(true) ?>
Cách mà nó hoạt động.
– Tài nguyên đang hoạt động là tài nguyên, vì vậy hãy kiểm tra trước để biết hiệu quả.
– Sau đó, chi nhánh để kiểm tra biến nào là KHÔNG:
– Một tài nguyên không bao giờ là NULL. (Chúng tôi kiểm tra thông qua `! == null` để biết hiệu quả).
– Một tài nguyên không bao giờ là vô hướng (int, float, string, bool).
– Một tài nguyên không bao giờ là một mảng.
– Một tài nguyên không bao giờ là một đối tượng.
– Chỉ duy nhất một loại biến nếu tất cả các kiểm tra ở trên thành công: NẾU KHÔNG phải bất kỳ loại nào ở trên, thì đó là tài nguyên đóng!
Chỉ cần lướt qua và thấy các phương pháp xấu và hack mà người khác đã để lại, và muốn giúp đỡ với kỹ thuật thích hợp này. Chúc mọi người may mắn!
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm is_resource() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé.
Cảm ơn các bạn đã ghé thăm codetutam.com
Bình luận: