Hàm class_exist() trong PHP có nhiệm vụ kiểm tra xem class đã định khai báo định nghĩa hay không.
Cú pháp
Cú pháp hàm class_exist() trong PHP như sau:
class_exists ( string$class_name
[, bool$autoload
=TRUE
] ) : bool
Tham số truyền vào
- $
class_name
là tên class gốc. - $autoload là có tự động chạy _autoload() khi không có class $
class_name
.
Giá trị trả về
Hàm này trả về giá trị TRUE nếu tồn tại Class và FALSE nếu không tồn tại Class .
Cảnh báo
Cách class_exist() sẽ không trả về TRUE nếu là interface, để trả về đúng giá trị hãy sử dụng hàm interface_exist().
Ví dụ minh họa
<?php // Kiểm tra một class trước khi khởi tạo nó if (class_exists('MyClass')) { $myclass = new MyClass(); } ?>
Ví dụ với __autoload()
<?php function __autoload($class) { include($class . '.php'); // Check to see whether the include declared the class if (!class_exists($class, false)) { trigger_error("Unable to load class: $class", E_USER_WARNING); } } if (class_exists('MyClass')) { $myclass = new MyClass(); } ?>
Như ví dụ trên bạn có thể thấy việc kết hợp sử dụng __autoload cùng với class_exist() sẽ giúp bạn kiểm soát các class tốt hơn.
Ứng dụng
Bạn có thể sử dụng class_exist() kết hợp cùng __autoload() hoặc spl_autoload_register() để khởi tạo và kiểm soát class.
file second.php <?php class Second {} ?> file index.php <?php class First { function first($class, $bool) { spl_autoload_register( function($class) { require strtolower($class) . '.php'; }); echo class_exists($class, $bool)?'Exist!!!!':'Not exist!'; } } new First($class = 'Second', $bool = true); //Exist!!!! new First($class = 'Second', $bool = false); //Not exist! ?>
Các hàm liên quan
- Hàm function_exist() kiểm tra một function có tồn tại.
- Hàm interface_exist() kiểm tra một interface có tồn tại.
- Hàm get_declared_groupes() trả về một mảng các Class đã được định nghĩa.
Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm class_exist() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé. Cảm ơn bạn đã ghé thăm codetutam.com