婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP自動載入類文件函數(shù)__autoload的使用方法

PHP自動載入類文件函數(shù)__autoload的使用方法

熱門標簽:九江外呼系統(tǒng) 海南人工外呼系統(tǒng)有效果嗎 七魚外呼系統(tǒng)停用嗎 阿里云400電話申請加工單 地下城堡2圖九地圖標注 抖音有個地圖標注是什么意思 西區(qū)企業(yè)怎么做地圖標注入駐 保定crm外呼系統(tǒng)運營商 智能電話機器人排名前十名南京

開發(fā)面向對象的應用程序時,往往要對每個類的定義建立一個 PHP 源文件。這樣的做法產生的一個很大的煩惱就是不得不在每個腳本(每個類一個文件)開頭寫一個長長的包含文件的列表。

在PHP開發(fā)的系統(tǒng)中,當在一個文件中需要調用另一個PHP文件中聲明的類時,就需要通過include或require把這個文件引入。不過有的時候,在文件眾多的項目中,要一一將所需類的文件都包含進來,是一個讓人很頭疼的事,所以我們能不能在用到什么類的時候,再把這個類所在的php文件導入呢?這就是我們這里我們要講的自動加載類。

在 PHP 5 中,可以定義一個 __autoload()函數(shù),它會在試圖使用尚未被定義的類時自動調用,通過調用此函數(shù),腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類, __autoload()函數(shù)接收的一個參數(shù),就是你想加載的類的類名,所以你做項目時,在組織定義類的文件名時,需要按照一定的規(guī)則,最好以類名為中心,也可以加上統(tǒng)一的前綴或后綴形成文件名,比如 xxx_classname.phpclassname_xxx.php以及就是classname.php等等。

我們以一個例子來說明一下__autoload 的使用方法,下面分別從 ClassA.php 和 ClassB.php 文件中加載 ClassA 和 ClassB 類

?php
//定義一個類ClassA,文件名為ClassA.php
class ClassA{
 public function __construct(){
 echo "ClassA load success!";
 }
}
?>
?php
//定義一個類ClassB,文件名為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
 public function __construct(){
 echo "ClassB load success!";
 }
}
?>
?php
function __autoload($classname)
{
 $classpath="./".$classname.'.php';
 if(file_exists($classpath)){
 require_once($classpath);
 }
 else{
 echo 'class file'.$classpath.'not found!';
 }
}
//ClassA類不存在時,自動調用__autoload()函數(shù),傳入?yún)?shù)”ClassA”
$obj = new ClassA();
//ClassB類不存在時,自動調用__autoload()函數(shù),傳入?yún)?shù)”ClassB”
$obj2 = new ClassB();
?>

能過上面的例子,我們發(fā)現(xiàn)在使用ClassA和ClassB時,我們并沒有手動引入ClassA.php和ClassB.php文件,但卻能正常使用這兩個類,可見__autoload是多么地好用。

但在使用__autoload時也要注意一些問題,比如上面的ClassB類,它是繼承了ClassA類,如果這時ClassA和ClassB不在同一個目錄時就會出錯,所以建議把所有存在extends關系的類放在同一個文件目錄下,或者在實例化一個繼承類的時候在文件中手工包含被繼承的類。還有一點就是在使用自動載入函數(shù)時一定要注意類名與文件名的對應關系。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • PHP autoload機制案例詳解
  • PHP autoload使用方法及步驟詳解
  • Laravel訪問出錯提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解決方法
  • 詳解PHP文件的自動加載(autoloading)
  • PHP自動加載autoload和命名空間的應用小結
  • PHP函數(shù)__autoload失效原因及解決方法

標簽:梅河口 韶關 甘肅 十堰 昭通 九江 涼山 遼陽

巨人網絡通訊聲明:本文標題《PHP自動載入類文件函數(shù)__autoload的使用方法》,本文關鍵詞  PHP,自動,載入,類,文件,函數(shù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP自動載入類文件函數(shù)__autoload的使用方法》相關的同類信息!
  • 本頁收集關于PHP自動載入類文件函數(shù)__autoload的使用方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 达州市| 南陵县| 宁南县| 日喀则市| 开远市| 田阳县| 遂昌县| 泸水县| 沙湾县| 昂仁县| 工布江达县| 安岳县| 内乡县| 保靖县| 高雄县| 阿拉善右旗| 金华市| 美姑县| 安福县| 五指山市| 庄浪县| 旺苍县| 莱芜市| 宁南县| 嘉禾县| 乳山市| 长阳| 明水县| 巴南区| 绥棱县| 南昌县| 新田县| 桓台县| 三原县| 永宁县| 西吉县| 济阳县| 武安市| 平顺县| 达孜县| 武川县|