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

phpspl_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<?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<?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<?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