Hàm is_resource() trong PHP

Hàm is_resource() trong PHP
Hàm is_resource() trong PHP

Chức năng của Hàm is_resource() trong PHP

Hàm is_resource() trong PHP dùng để kiểm tra kết nối của một file có đang mở hay không, một kết nối mạng hoặc kết nối cơ sở dữ liệu có đang mở hay không, nếu đang mở sẽ trả về true, nếu đóng sẽ trả về false.

Cú pháp của Hàm is_resource() trong PHP

$kết_quả = is_resource($chế_độ_đọc_ghi_file);

$chế_độ_đọc_ghi_file: Chế độ đọc file (Ví dụ: $chế_độ_đọc_file = fopen("filetext.txt", "r");)

$kết_quả: Kết quả trả về true nếu file đang ở trạng thái mở để đọc ghi file, trả về false nếu file đang ở trạng thái đóng.

Code PHP - Hàm is_resource

<?php
$file = fopen("filetext.txt", "r");
if (is_resource($file)) {
  echo '$file đang ở trạng thái mở<br>';
} else {
  echo '$file đang ở trạng thái đóng<br>';
}
// Kết quả: $file đang ở trạng thái mở

// Sau khi đóng trạng thái mở file thì $file ở trạng thái đón
fclose($file);

//Kiểm tra $file sau khi đóng file
if (is_resource($file)) {
  echo '$file đang ở trạng thái mở';
} else {
  echo '$file đang ở trạng thái đóng';
}
// $file đang ở trạng thái đóng
?>

Kết quả:

$file đang ở trạng thái mở

Kiểm tra $file sau khi đóng file

$file đang ở trạng thái đóng

Kiểm tra và xử lý resource trong PHP bằng is_resource()

Trong PHP, resource thường xuất hiện khi chương trình làm việc với các tài nguyên bên ngoài như file, kết nối hoặc một số đối tượng được quản lý bởi phần mở rộng. Khi tài nguyên đã được tạo, việc kiểm tra trạng thái trước khi tiếp tục thao tác giúp hạn chế lỗi do biến không còn chứa resource hợp lệ.

Kiểm tra biến có phải resource hay không

is_resource() trả về true khi biến đang chứa một resource hợp lệ và trả về false nếu biến không phải resource. Điều này hữu ích khi một hàm có thể nhận nhiều kiểu dữ liệu khác nhau hoặc khi cần xác nhận kết quả khởi tạo tài nguyên trước khi sử dụng.

<?php
$file = fopen("data.txt", "r");

if (is_resource($file)) {
    echo "Tài nguyên đã được mở thành công.";
}
?>

Trong ví dụ trên, chương trình chỉ tiếp tục xử lý khi biến $file thực sự chứa resource. Cách kiểm tra này đặc biệt hữu ích với các thao tác có khả năng thất bại, chẳng hạn khi mở file không thành công.

Xử lý resource đã bị đóng hoặc không còn hợp lệ

Không nên mặc định rằng một biến từng chứa resource thì luôn có thể tiếp tục sử dụng. Sau khi tài nguyên được đóng hoặc giải phóng, trạng thái của biến có thể không còn đáp ứng điều kiện cần thiết cho thao tác tiếp theo.

<?php
$file = fopen("data.txt", "r");

if (is_resource($file)) {
    fclose($file);
}

if (!is_resource($file)) {
    echo "Resource không còn khả dụng.";
}
?>

Việc kiểm tra lại giúp chương trình tránh thực hiện các thao tác không phù hợp với tài nguyên đã kết thúc vòng đời. Đây cũng là cách đơn giản để kiểm soát luồng xử lý khi resource được tạo và đóng ở nhiều vị trí khác nhau trong chương trình.

Kết hợp is_resource() với các hàm làm việc với file

Khi thao tác với file, is_resource() có thể được dùng như một bước xác nhận trước khi đọc, ghi hoặc đóng file. Cách này giúp tách rõ hai trạng thái: mở tài nguyên thành công và không thể sử dụng tài nguyên.

<?php
$file = fopen("data.txt", "r");

if (is_resource($file)) {
    $content = fread($file, filesize("data.txt"));
    fclose($file);

    echo $content;
} else {
    echo "Không thể mở file.";
}
?>

Điểm quan trọng là is_resource() chỉ giúp xác định kiểu và trạng thái resource tại thời điểm kiểm tra. Nó không thay thế việc xử lý lỗi của từng hàm như fopen(), fread() hay fclose(). Khi xây dựng chương trình thực tế, nên kết hợp kiểm tra resource với cách xử lý lỗi phù hợp để tránh làm gián đoạn quá trình thực thi.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm is_resource() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm is_resource() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !