真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP類文件的自動(dòng)加載器用法介紹

這篇文章主要介紹“PHP類文件的自動(dòng)加載器用法介紹”,在日常操作中,相信很多人在PHP類文件的自動(dòng)加載器用法介紹問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”PHP類文件的自動(dòng)加載器用法介紹”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

在鄂托克等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),鄂托克網(wǎng)站建設(shè)費(fèi)用合理。

1. 類文件的自動(dòng)加載器

1. 我們的項(xiàng)目目錄下,所有的服務(wù)端代碼都引入了一個(gè)共同的文件那就是init.php

PHP類文件的自動(dòng)加載器用法介紹

2. 在這個(gè)文件中,我們加載了倆個(gè)配置文件,我們先看global.inc.php

在這個(gè)文件里邊有一個(gè)類文件自動(dòng)加載器

PHP類文件的自動(dòng)加載器用法介紹

3. spl_autoload_register() 作為 __autoload() 函數(shù)的替代,返回true

PHP類文件的自動(dòng)加載器用法介紹

4 . 過程詳解

PHP類文件的自動(dòng)加載器用法介紹

我們可以打印一下$class_name

PHP類文件的自動(dòng)加載器用法介紹

由于我們項(xiàng)目是在linux上存放,linux上是不能反斜杠的,所以需要在把斜杠轉(zhuǎn)為正斜杠

PHP類文件的自動(dòng)加載器用法介紹

PHP類文件的自動(dòng)加載器用法介紹

然后拼接路徑并判斷文件是否存在

PHP類文件的自動(dòng)加載器用法介紹

然后在類外調(diào)用一下即可

PHP類文件的自動(dòng)加載器用法介紹

2. 解釋文件類加載器

如果一個(gè)類在多個(gè)腳本中都需要使用,可以將一個(gè)類的定義代碼,單獨(dú)的封裝到一個(gè)文件中,這種文件也叫作類文件,在需要的時(shí)候,將整個(gè)文件載入進(jìn)來即可!

PHP在執(zhí)行的時(shí)候,如果發(fā)現(xiàn)需要一個(gè)類(只要是和這個(gè)類相關(guān)的任何的操作),但此時(shí)當(dāng)前腳本又沒有這個(gè)類的定義代碼,也沒有手動(dòng)加載這個(gè)類文件,那么,PHP會(huì)自動(dòng)的調(diào)用一個(gè)名字叫作__autoload($class_name)函數(shù),調(diào)用的時(shí)候,會(huì)給該函數(shù)傳遞一個(gè)參數(shù),該參數(shù)就是當(dāng)前所需要的類的類名!

3. 檢驗(yàn)

我們?cè)趌ist文件里邊隨便寫一個(gè)模型實(shí)例

PHP類文件的自動(dòng)加載器用法介紹

然后打印就可以看到class_name

但我們沒有這個(gè)文件,所以會(huì)報(bào)出file not exists 

PHP類文件的自動(dòng)加載器用法介紹

3. 源碼

//自定義類自動(dòng)加載路徑define('CUSTOM_CLASS_PATH', ROOT_PATH . '/class');define ('DIRECTORY_SEPARATOR', "/");/** * Class SYSCore * 類文件的自動(dòng)加載器 */class SYSCore {    public static function registerAutoload($class = 'SYSCore') {        spl_autoload_register(array($class, 'autoload'));    }    public static function unregisterAutoload($class) {      spl_autoload_unregister(array($class, 'autoload'));    }  public static function my_callback($match){    return DIRECTORY_SEPARATOR. $match[0];  }    public static function autoload($class_name) {        if (strpos($class_name, 'common') === 0            || strpos($class_name, 'model') === 0            || strpos($class_name, 'MySQL') === 0            || strpos($class_name, 'Curl') === 0            || strpos($class_name, 'controller') === 0        ) {            // 系統(tǒng)內(nèi)部自定義的類域名空間        } else {            return true;        }    $class_name = str_replace('\\', '/', $class_name);        $class_path = CUSTOM_CLASS_PATH . DIRECTORY_SEPARATOR . $class_name.'.php';        $class_path = str_replace('//', '/', $class_path);        # 判斷文件是否存在        if(file_exists($class_path)) {            # 如果存在則引入            return include_once($class_path);        } else {            # 報(bào)出警告信息            echo "file not exists class_path=$class_path\n
";        }        return false;    }}SYSCore::registerAutoload();

到此,關(guān)于“PHP類文件的自動(dòng)加載器用法介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


分享名稱:PHP類文件的自動(dòng)加載器用法介紹
轉(zhuǎn)載來源:http://weahome.cn/article/jipejj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部