魔術方法__autoload()實例詳解(php物件導向進階教學)

巴扎黑
發布: 2023-03-07 14:56:02
原創
2221 人瀏覽過

在寫程式碼的時候,常常會遇到一個頭痛的問題,就是要在一個頁面中引入很多的類,需要用到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 . &#39;.class.php&#39;;                           //类文件路径
if(file_exists($class_path)){                                                  //判断文件是否存在
include_once($class_path);                                          //动态引入文件
}else
echo &#39;类路径错误&#39;;
}
$sport = new Sport(&#39;打篮球&#39;);
echo $sport;
?>
登入後複製

先在類文件sport.class.php中常見類,但不要實例化。然後再php檔案index.php中講類別文件中的類別引進進來。

以上是魔術方法__autoload()實例詳解(php物件導向進階教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!