高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

PHP5 Magic Function : __autoload

在PHP裡使用類別,若忘了把類別檔案給include進來,在實體化的時候會發生錯誤。在PHP5裡有__autoload這個方便的function可以用。透過它,就可以讓類別檔在需要的時候載入了:

1
2
3
4
5
6
7
8
9
10
11
<?php
  function __autoload($class_name)
  {
      $filename = strtolower($class_name) .'.php';
      $file = site_path .'classes' .DIRECTORY_SEPARATOR .$filename;
      if(!file_exists($file))
      {
          return false;
      }
      include_once ($file);
  }

這樣只要把類別檔放在classes目錄裡面,它在需要用的時候就會透過__autoload function去找到相對應的檔案。

根據php.net所寫的注意事項:

  1. 它在Command Line模式底下不能用
  2. 在裡面丟出Exception抓不到

Comments