国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法

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

2021-07-28 14:42CODETC PHP教程

今天小編就為大家分享一篇關(guān)于PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

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

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

在 PHP 5 中,可以定義一個(gè) __autoload()函數(shù),它會(huì)在試圖使用尚未被定義的類時(shí)自動(dòng)調(diào)用,通過(guò)調(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è)例子來(lái)說(shuō)明一下__autoload 的使用方法,下面分別從 ClassA.php 和 ClassB.php 文件中加載 ClassA 和 ClassB 類

?
1
2
3
4
5
6
7
8
<?php
//定義一個(gè)類ClassA,文件名為ClassA.php
class ClassA{
 public function __construct(){
 echo "ClassA load success!";
 }
}
?>
?
1
2
3
4
5
6
7
8
<?php
//定義一個(gè)類ClassB,文件名為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
 public function __construct(){
 echo "ClassB load success!";
 }
}
?>
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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();
?>

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

但在使用__autoload時(shí)也要注意一些問(wèn)題,比如上面的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é)

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品久久久久电影 | 国产精品久久久久一区二区三区 | 亚洲国产精品激情在线观看 | 欧美一区二区在线免费观看 | 91精品国产91久久综合桃花 | 久久久久久久免费观看 | 91精品国产综合久久久久久 | 成人在线免费观看视频 | 91夜夜操 | 青青在线精品视频 | 欧美三级在线 | 天堂资源在线 | 欧美视频第一页 | 国内精品一区二区三区视频 | 欧美日韩中文字幕 | 精品在线看 | 亚洲视频在线观看网址 | 国产亚洲片 | 成人一区电影 | 久久综合久久综合久久综合 | 国产成人久久 | 亚洲成av人片在线观看 | 国产四区| 中文字幕一区二区av | 99热在线观看免费 | 毛片在线网站 | 日韩精品一区二区三区在线播放 | 国产黄色片免费观看 | porn在线视频| 黄色在线免费观看 | 亚洲午夜视频在线观看 | 成人狠狠色综合 | 日韩av一区二区在线观看 | 国产成人av在线 | 免费福利视频一区二区三区 | 国产精品久久久久久久久久久天堂 | 黄色一级毛片a | 精品国产一区二区三区久久久蜜月 | 亚洲激情在线 | 一级免费网站 | 日本在线免费 |