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

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

 更新時(shí)間:2019年03月25日 09:25:38   作者:CODETC  
今天小編就為大家分享一篇關(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.php、classname_xxx.php以及就是classname.php等等。

我們以一個(gè)例子來(lái)說(shuō)明一下__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();
?>

能過(guò)上面的例子,我們發(fā)現(xiàn)在使用ClassA和ClassB時(shí),我們并沒(méi)有手動(dòng)引入ClassA.php和ClassB.php文件,但卻能正常使用這兩個(gè)類,可見(jiàn)__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ì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

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

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

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

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

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

    PHPMYADMIN 簡(jiǎn)明安裝教程 推薦

    簡(jiǎn)單的說(shuō),phpmyadmin就是一種mysql的管理工具,安裝該工具后,即可以通過(guò)web形式直接管理mysql數(shù)據(jù),而不需要通過(guò)執(zhí)行系統(tǒng)命令來(lái)管理,非常適合對(duì)數(shù)據(jù)庫(kù)操作命令不熟悉的數(shù)據(jù)庫(kù)管理者,下面我就說(shuō)下怎么安裝該工具
    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ī)?lái)一篇php操作路徑的經(jīng)典方法(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    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)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)無(wú)法登錄解決辦法的兩種方法

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

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

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

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

最新評(píng)論

隆昌县| 瑞丽市| 遂平县| 子长县| 鹤峰县| 晋城| 平湖市| 兴安县| 彰化县| 遂宁市| 松溪县| 馆陶县| 南康市| 定结县| 阳泉市| 日土县| 贡觉县| 华宁县| 扶沟县| 黑山县| 泸水县| 海兴县| 舒兰市| 射阳县| 开鲁县| 惠州市| 青龙| 清新县| 连州市| 乌苏市| 本溪| 肥西县| 岢岚县| 万源市| 东台市| 长治市| 东丰县| 临猗县| 宣恩县| 新乐市| 双峰县|