最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年03月25日 09:25:38   作者:CODETC  
今天小編就為大家分享一篇關(guān)于PHP自動(dòng)載入類文件函數(shù)__autoload的使用方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

開發(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.php、classname_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)鏈接

相關(guān)文章

  • PHP在線生成二維碼代碼(google api)

    PHP在線生成二維碼代碼(google api)

    通過google在線生成二維碼的api在線生成二維碼,需要的朋友可以參考下
    2013-06-06
  • yii2的restful api路由實(shí)例詳解

    yii2的restful api路由實(shí)例詳解

    這篇文章主要介紹了yii2的restful api路由實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • PHPMYADMIN 簡明安裝教程 推薦

    PHPMYADMIN 簡明安裝教程 推薦

    簡單的說,phpmyadmin就是一種mysql的管理工具,安裝該工具后,即可以通過web形式直接管理mysql數(shù)據(jù),而不需要通過執(zhí)行系統(tǒng)命令來管理,非常適合對(duì)數(shù)據(jù)庫操作命令不熟悉的數(shù)據(jù)庫管理者,下面我就說下怎么安裝該工具
    2010-03-03
  • Yii2實(shí)現(xiàn)UploadedFile上傳文件示例

    Yii2實(shí)現(xiàn)UploadedFile上傳文件示例

    這篇文章主要介紹了Yii2實(shí)現(xiàn)UploadedFile上傳文件示例的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-02-02
  • php操作路徑的經(jīng)典方法(必看篇)

    php操作路徑的經(jīng)典方法(必看篇)

    下面小編就為大家?guī)硪黄猵hp操作路徑的經(jīng)典方法(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • php判斷ip黑名單程序代碼實(shí)例

    php判斷ip黑名單程序代碼實(shí)例

    這篇文章主要介紹了php判斷ip黑名單程序代碼實(shí)例,需要的朋友可以參考下
    2014-02-02
  • PHP獲取當(dāng)前時(shí)間的5種實(shí)現(xiàn)方式

    PHP獲取當(dāng)前時(shí)間的5種實(shí)現(xiàn)方式

    這篇文章主要介紹了PHP獲取當(dāng)前時(shí)間的5種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Yii2框架視圖(View)操作及Layout的使用方法分析

    Yii2框架視圖(View)操作及Layout的使用方法分析

    這篇文章主要介紹了Yii2框架視圖(View)操作及Layout的使用方法,結(jié)合具體實(shí)例形式分析了Yii2框架視圖操作及布局layout相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • magento后臺(tái)無法登錄解決辦法的兩種方法

    magento后臺(tái)無法登錄解決辦法的兩種方法

    可能很多朋友有同樣的經(jīng)歷,magento在服務(wù)器中配置域名是可以正常的訪問了,但是在本地配置后卻無法登錄后臺(tái),賬號(hào)密碼登錄的時(shí)候發(fā)現(xiàn)出現(xiàn)空白,無法跳轉(zhuǎn)到后臺(tái),本文章向大家介紹兩種解決本地magento后臺(tái)無法登錄的方法,需要的朋友可以參考下
    2016-12-12
  • 發(fā)布一個(gè)用PHP fsockopen寫的HTTP下載的類

    發(fā)布一個(gè)用PHP fsockopen寫的HTTP下載的類

    發(fā)布一個(gè)用PHP fsockopen寫的HTTP下載的類...
    2007-02-02

最新評(píng)論

宣城市| 开江县| 江陵县| 璧山县| 松溪县| 武隆县| 大姚县| 繁峙县| 凌源市| 呼玛县| 茂名市| 荆门市| 交口县| 称多县| 博乐市| 金华市| 温州市| 罗平县| 安岳县| 温泉县| 合川市| 东辽县| 邻水| 监利县| 福州市| 和硕县| 蕲春县| 东乌珠穆沁旗| 溧阳市| 武清区| 筠连县| 盐边县| 隆安县| 平阳县| 河源市| 林西县| 广昌县| 友谊县| 岑溪市| 临潭县| 广德县|