在寫程式碼的時候,常常會遇到一個頭痛的問題,就是要在一個頁面中引入很多的類,需要用到include_once或require_once()函數一個一個引入。當引入的內容不多時,還可以接受,但是如果有十幾個或幾十個文件需要引入,操作次數多,煩躁不說,還會出現重複引入或忘了引用的情況。
現在在PHP5中我們可以用__autoload()方法來解決這個問題,__autoload()方法可以自動實例化需要使用的類別。當程式要用到一個類,但該類還沒有實例化時,PHP5將呼叫__autoload()方法,在指定的路徑下自動查找和該類名稱相同的文件。如果找到,程式則繼續執行;否則,報告錯誤。
注意:
其他所有的方法都是要在類別的內部添加才起作用,__autoload()是唯一一個不在類別中添加的方法
#只要在頁面中使用到一個類,類別名稱就會自動傳給這個參數。
舉例:
類別檔案sport.class.php的程式碼:
<?php class Sport{ private $type; public function __construct($type){ $this->type = $type; } public function __toString(){ return $this->type; } } ?>
在index.php檔案下的程式碼:
<?php function __autoload($class_name){ //创建__autoload方法 $class_path = $class_name . '.class.php'; //类文件路径 if(file_exists($class_path)){ //判断文件是否存在 include_once($class_path); //动态引入文件 }else echo '类路径错误'; } $sport = new Sport('打篮球'); echo $sport; ?>
先在類文件sport.class.php中常見類,但不要實例化。然後再php檔案index.php中講類別文件中的類別引進進來。
以上是魔術方法__autoload()實例詳解(php物件導向進階教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!