亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2012年02月04日 16:16:46   作者:  
在使用PHP的OO模式開發(fā)系統(tǒng)時(shí),通常大家習(xí)慣上將每個(gè)類的實(shí)現(xiàn)都存放在一個(gè)單獨(dú)的文件里,這樣會(huì)很容易實(shí)現(xiàn)對(duì)類進(jìn)行復(fù)用,同時(shí)將來維護(hù)時(shí)也很便利
這也是OO設(shè)計(jì)的基本思想之一。在PHP5之前,如果需要使用一個(gè)類,只需要直接使用include/require將其包含進(jìn)來即可。下面是一個(gè)實(shí)際的例子:
復(fù)制代碼 代碼如下:

class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
//定義一個(gè)類ClassA,文件名為ClassA.php
class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
//定義一個(gè)類ClassB,文件名為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
定義兩個(gè)測(cè)試用的類之后,我們來編寫一個(gè)含有__autoload()方法的PHP運(yùn)行程序文件如下:
function __autoload($classname){
$classpath=”./”.$classname.'.php';
if(file_exists($classpath)){
require_once($classpath);
}
else{
echo ‘class file'.$classpath.'not found!';
}
}

$newobj = new ClassA();
$newobj = new ClassB();

這個(gè)文件的運(yùn)行是一點(diǎn)問題都沒有的,可見autoload是多么的好用啊,呵呵……
但是不得不提醒你一下幾個(gè)方面是必須要注意的。
1、如果類存在繼承關(guān)系(例如:ClassB extends ClassA),并且ClassA不在ClassB所在目錄
利用__autoload魔術(shù)函數(shù)實(shí)例化ClassB的時(shí)候就會(huì)受到一個(gè)致命錯(cuò)誤:
Fatal error: Class ‘Classd' not found in ……ClassB.php on line 2,
解決方法:把所有存在extends關(guān)系的類放在同一個(gè)文件目錄下,或者在實(shí)例化一個(gè)繼承類的時(shí)候在文件中手工包含被繼承的類;
2、另外一個(gè)需要注意的是,類名和類的文件名必須一致,才能更方便的使用魔術(shù)函數(shù)__autoload;
其他需要注意的事情:
3、在CLI模式下運(yùn)行PHP腳本的話這個(gè)方法無效;
4、如果你的類名稱和用戶的輸入有關(guān)——或者依賴于用戶的輸入,一定要注意檢查輸入的文件名,例如:.././這樣的文件名是非常危險(xiǎn)的。

相關(guān)文章

  • PHP中ini_set和ini_get函數(shù)的用法小結(jié)

    PHP中ini_set和ini_get函數(shù)的用法小結(jié)

    本篇文章主要是對(duì)PHP中ini_set和ini_get函數(shù)的用法進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2014-02-02
  • 詳談PHP編碼轉(zhuǎn)換問題

    詳談PHP編碼轉(zhuǎn)換問題

    本文給大家分享的是個(gè)人對(duì)于PHP編碼轉(zhuǎn)換問題的理解以及處理方法,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-07-07
  • php版微信自定義回復(fù)功能示例

    php版微信自定義回復(fù)功能示例

    這篇文章主要介紹了php版微信自定義回復(fù)功能,結(jié)合完整實(shí)例形式分析了php版微信自定義回復(fù)功能的設(shè)置與代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-12-12
  • 使用Zttp簡化Guzzle 調(diào)用

    使用Zttp簡化Guzzle 調(diào)用

    在 PHP 的項(xiàng)目中,如果你需要通過代碼來發(fā)起 HTTP 請(qǐng)求,相信很多人對(duì) GuzzleHttp 這個(gè) Package 很熟悉,然而其實(shí)在使用 Guzzle 的時(shí)候,我們依然可以做得更簡便一點(diǎn)的,下面我們就來看下今天的主角--Zhttp
    2017-07-07
  • PHP數(shù)字金額轉(zhuǎn)換成中文大寫顯示

    PHP數(shù)字金額轉(zhuǎn)換成中文大寫顯示

    今天小編就為大家分享一篇關(guān)于PHP數(shù)字金額轉(zhuǎn)換成中文大寫顯示,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • php實(shí)現(xiàn)utf-8和GB2312編碼相互轉(zhuǎn)換函數(shù)代碼

    php實(shí)現(xiàn)utf-8和GB2312編碼相互轉(zhuǎn)換函數(shù)代碼

    php實(shí)現(xiàn)utf-8和GB2312編碼相互轉(zhuǎn)換的一個(gè)函數(shù),有需要的朋友可以參考下
    2013-02-02
  • PHP取整數(shù)函數(shù)常用的四種方法小結(jié)

    PHP取整數(shù)函數(shù)常用的四種方法小結(jié)

    PHP取整數(shù)函數(shù)常用的四種方法,下面收集了四個(gè)函數(shù);經(jīng)常用到取整的函數(shù),今天小小的總結(jié)一下!其實(shí)很簡單,就是幾個(gè)函數(shù)而已~~主要是:ceil,floor,round,intval
    2012-07-07
  • php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類

    php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類

    這篇文章主要介紹了php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • php array 轉(zhuǎn)json及java 轉(zhuǎn)換 json數(shù)據(jù)格式操作示例

    php array 轉(zhuǎn)json及java 轉(zhuǎn)換 json數(shù)據(jù)格式操作示例

    這篇文章主要介紹了php array 轉(zhuǎn)json及java 轉(zhuǎn)換 json數(shù)據(jù)格式操作,結(jié)合實(shí)例形式分析了PHP針對(duì)array數(shù)組轉(zhuǎn)json以及Java操作Map、List、對(duì)象與json格式轉(zhuǎn)換的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • php tpl模板引擎定義與使用示例

    php tpl模板引擎定義與使用示例

    這篇文章主要介紹了php tpl模板引擎定義與使用,結(jié)合實(shí)例形式分析了php模板引擎的定義與使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08

最新評(píng)論