好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

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

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

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

開發(fā)面向?qū)ο蟮膽?yīng)用程序時(shí),往往要對(duì)每個(gè)類的定義建立一個(gè) PHP 源文件。這樣的做法產(chǎn)生的一個(gè)很大的煩惱就是不得不在每個(gè)腳本(每個(gè)類一個(gè)文件)開頭寫一個(gè)長長的包含文件的列表。

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

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

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

?php
//定義一個(gè)類ClassA,文件名為ClassA.php
class ClassA{
 public function __construct(){
 echo "ClassA load success!";
 }
}
?>
?php
//定義一個(gè)類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類不存在時(shí),自動(dòng)調(diào)用__autoload()函數(shù),傳入?yún)?shù)”ClassA”
$obj = new ClassA();
//ClassB類不存在時(shí),自動(dòng)調(diào)用__autoload()函數(shù),傳入?yún)?shù)”ClassB”
$obj2 = new ClassB();
?>

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

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

標(biāo)簽:梅河口 韶關(guān) 甘肅 十堰 昭通 九江 涼山 遼陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法》,本文關(guān)鍵詞  PHP,自動(dòng),載入,類,文件,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 法国啄木鸟大尺度mp4| 欧美人与拘一级毛片欧美大片| japanese日本xxx乱| 野花免费在线播放| 打开张予曦的腿狠狠进出小说| (双性)(高H)-海棠书屋| 色欲AV天天天久久久综合网88| 一级做ae视频片段怎么弄过| 鞭打抽打胸乳高h| 日本成年人网站| 一级毛片高清电影片| 国产精品无人区一码二码三蘑菇| 嗯啊好爽好大| 久操| 欧美老妇BBB与牲乱叫| 一级戒备观看在线观看| 日本视频免费在线播放| 日本亚州视频在线八a| 偷吃上司漂亮人妻| 五福影院aⅴ无码久久影院| 黑莲花攻略手册.| 年轻的母亲6在线完整视频免费| 国产精品怡红院在线观看| 国产精品久久久尤物| 亚洲无人区码一码二码三码的特点 | 日产无码视频在线| 公的又大又粗又爽| bl浪荡受高h御宅屋| 亲胸摸揉摸刺激| 扒腿吃奶18禁???视频| 亚洲婷婷成人激久久月天| 青青亚洲| 女高潮大叫喷水抽搐| 亚洲国产精品不卡毛片a在线| 美女脱内衣内裤免费视频| 国产淫语对白| 17C丨国产丨精品入口| 色戒未hd删减版在线观看视频| 国产99er66在线视频| 黄一级| 麻麻夹得好紧…爽死我了视频 |