Hàm spl_autoload_register
Hàm spl_autoload_register đăng ký một hàm nhất định làm phương thức triển khai cho việc tự động tải lớp. Khi PHP gặp một lớp chưa được định nghĩa, nó sẽ lần lượt gọi tất cả các hàm tự động tải đã đăng ký, truyền cho chúng tên của lớp. Tham số đầu tiên - hàm callback để tự động tải, tham số thứ hai (tùy chọn) - có ném ra ngoại lệ khi lỗi hay không, tham số thứ ba (tùy chọn) - có thêm hàm vào đầu hàng đợi hay không.
Cú pháp
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Ví dụ
Đăng ký đơn giản một hàm tự động tải:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Bây giờ có thể tạo đối tượng mà không cần include rõ ràng
$obj = new MyClass();
?>
Ví dụ
Sử dụng hàm ẩn danh để tự động tải:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Ví dụ
Đăng ký nhiều hàm tự động tải:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Thêm vào đầu hàng đợi
// PHP sẽ gọi các hàm theo thứ tự: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Xem thêm
-
hàm spl_autoload_functions,
hàm này trả về các bộ tự động tải -
hàm spl_autoload_unregister,
hàm này xóa một bộ tự động tải -
hàm class_exists,
hàm này kiểm tra một lớp