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

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

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

class ClassA{
public function __construct(){
echo “ClassA load success!”;
}
}
//定義一個類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!”;
}
}
//定義一個類ClassB,文件名為ClassB.php,ClassB繼承ClassA
class ClassB extends ClassA {
public function __construct(){
//parent::__construct();
echo “ClassB load success!”;
}
}
定義兩個測試用的類之后,我們來編寫一個含有__autoload()方法的PHP運行程序文件如下:
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();

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

相關(guān)文章

  • PHP后期靜態(tài)綁定之self::限制實例分析

    PHP后期靜態(tài)綁定之self::限制實例分析

    這篇文章主要介紹了PHP后期靜態(tài)綁定之self::限制,結(jié)合實例形式分析了php后期靜態(tài)綁定self::與static相關(guān)使用技巧,需要的朋友可以參考下
    2018-12-12
  • Win2003下IIS+PHP+MySQL+Zend配置步驟詳解

    Win2003下IIS+PHP+MySQL+Zend配置步驟詳解

    Win2003下IIS+PHP+MySQL+Zend配置步驟詳解...
    2007-05-05
  • php 設(shè)計模式之 工廠模式

    php 設(shè)計模式之 工廠模式

    用工廠模式設(shè)計數(shù)據(jù)庫操作類,本程序要運行在PHP5.0以上,使用本程序可以方便的更換數(shù)據(jù)庫,并且可擴展到其它數(shù)據(jù)庫平臺;在換數(shù)據(jù)庫平臺時,只是簡單的修改數(shù)據(jù)庫類型就可以了。
    2008-12-12
  • JWT登錄認(rèn)證實戰(zhàn)模擬過程全紀(jì)錄

    JWT登錄認(rèn)證實戰(zhàn)模擬過程全紀(jì)錄

    jwt是由用戶以用戶名、密碼登錄,服務(wù)端驗證后,會生成一個token,返回給客戶端,客戶端在下次訪問的過程中攜帶這個token,服務(wù)端責(zé)每次驗證這個token,下面這篇文章主要給大家介紹了關(guān)于JWT登錄認(rèn)證實戰(zhàn)模擬的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • PHP結(jié)構(gòu)型模式之裝飾器模式

    PHP結(jié)構(gòu)型模式之裝飾器模式

    這篇文章主要介紹了PHP結(jié)構(gòu)型模式之裝飾器模式,裝飾器模式是一種結(jié)構(gòu)型模式,它允許你在運行時為一個對象動態(tài)地添加新的行為,而不影響其原始的行為。這種類型的設(shè)計模式屬于結(jié)構(gòu)型模式,它結(jié)合了透明性和多樣性
    2023-04-04
  • preg_match_all使用心得分享

    preg_match_all使用心得分享

    preg_match_all 進行全局正則表達(dá)式匹配,這篇文章主要介紹下preg_match_all的相關(guān)資料,需要的朋友可以參考下
    2014-01-01
  • php模擬js函數(shù)unescape的函數(shù)代碼

    php模擬js函數(shù)unescape的函數(shù)代碼

    php模擬js函數(shù)unescape的函數(shù)代碼,需要的朋友可以參考下
    2012-10-10
  • PHP無法訪問遠(yuǎn)程mysql的問題分析及解決

    PHP無法訪問遠(yuǎn)程mysql的問題分析及解決

    首先說明,遠(yuǎn)程服務(wù)器是可遠(yuǎn)程訪問的,經(jīng)過一番折騰最后想到了SELINUX的問題,對比了下AB兩臺機器,果然設(shè)置不一樣!估計就是它的問題
    2013-05-05
  • php mysql操作mysql_connect連接數(shù)據(jù)庫實例詳解

    php mysql操作mysql_connect連接數(shù)據(jù)庫實例詳解

    php操作數(shù)據(jù)庫首先必須連接到指定的數(shù)據(jù)庫,連接數(shù)據(jù)庫可以使用PHP mysql_connect函數(shù),本文章向大家介紹mysql_connect函數(shù)的使用方法和實例,需要的朋友可以參考一下
    2016-12-12
  • 功能強大的PHP圖片處理類(水印、透明度、旋轉(zhuǎn))

    功能強大的PHP圖片處理類(水印、透明度、旋轉(zhuǎn))

    這篇文章主要匯總介紹了php圖片處理類(水印、透明度、縮放、銳化),非常的簡單實用,有需要的小伙伴可以參考下
    2015-10-10

最新評論

当阳市| 仲巴县| 阿克| 开平市| 临沂市| 高要市| 四子王旗| 故城县| 七台河市| 东平县| 黄大仙区| 报价| 木兰县| 武安市| 车险| 镇平县| 泽州县| 梨树县| 栾城县| 辽宁省| 辽中县| 水富县| 杂多县| 贵港市| 特克斯县| 南投县| 措美县| 辉南县| 富蕴县| 渝北区| 吉木萨尔县| 马山县| 开原市| 建始县| 丹凤县| 泰安市| 曲阳县| 江阴市| 思南县| 孝昌县| 舒城县|