function __autoload($class){
require($class.".php");
}
$php = new myClass();
?>
Ở ví dụ trên ta thấy hàm __autoload tự động gọi file phpbasic.php ra, chúng ta chỉ việc khởi tạo lại class basic
- Note : Chú ý khi sử dụng autoload thì tên file và tên class phải giống nhau nhé
Đó là autoload trong cùng một folder, vậy thì khi gọi một class trong một folder khác thì phải làm thế nào? ví dụ ta có một folder là models, trong folder có file user.php
File models/user.php
class user{
public function __construct(){
echo "I'm class user!";
}
}
- Để sử dụng dc autoload cho trường hợp này ts cần phải đổi lại tên class sao cho phù hợp với đường dẫn đến file. Ở đây file user.php nằm trong thư mục models nên ta đổi tên class user thành class models_user
File user.php
class models_user{
public function __construct(){
echo "I'm class user!";
}
}
- Các bạn chú ý models_user là tên class và cũng chính là đường dẫn đến file user.php lúc này ta cần phải thêm một chút vào hàm _autoload, chúng ta sử dụng str_replace ký tự gạch dưới của models_user thành models/user
function __autoload($class){
$class = str_replace("_","/",$class);
require($class.".php");
}
$php = new models_user();
?>
- Lúc này khi ta khởi tạo lại lớp models_user thì nó sẽ tự gọi file user.php trong models ra, và đây là kết quả:
--> I'm class user!