亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php自動加載方式集合

2024-05-04 23:44:40
字體:
來源:轉載
供稿:網友
這篇文章主要針對php自動加載方式進行大集合,一種是常規加載方式,另一種是__autoload()自動加載,想知道第三種方式請閱讀下文
 

php加載文件方式:
1、include,include_once,requice,requice_one常規加載
2、__autoload()
3、spl_autoload_register()

常規加載方式
假設我們有一個類文件A.php,里面定義了一個名字為A的類:

<?php  class A {    public function __construct() {      echo 'Got it.';    }  }

然后我們有一個index.php需要用到這個類A,常規的寫法就是

<?php    require('A.php');    $a = new A();

但是有一個問題就是,假如我們的index.php需要包含的不只是類A,而是需要很多類,這樣子就必須寫很多行require語句,有時候也會讓人覺得不爽。

__autoload()自動加載
不過在php5之后的版本,我們就不再需要這樣做了。
在php5中,試圖使用尚未定義的類時會自動調用__autoload函數,所以我們可以通過編寫__autoload函數來讓php自動加載類,而不必寫一個長長的包含文件列表。

例如在上面那個例子中,index.php可以這樣寫:

<?php  function __autoload($class){    $file = $class . '.php';    if (is_file($file)) {      require_once($file);    }  }  $a = new A();

當然上面只是最簡單的示范,__autoload只是去include_path尋找類文件并加載,我們可以根據自己的需要定義__autoload加載類的規則。注意:由于__autoload()是個函數,只能存在一次。

spl_autoload_register()自動加載
但現在問題來了,如果在一個系統的實現中,如果需要使用很多其它的類庫,這些類庫可能是由不同的開發人員編寫的,其類名與實際的磁盤文件的映射規則不盡相同。這時如果要實現類庫文件的自動加載,就必須在__autoload()函數中將所有的映射規則全部實現,這樣的話__autoload()函數有可能 會非常復雜,甚至無法實現。最后可能會導致__autoload()函數十分臃腫,這時即便能夠實現,也會給將來的維護和系統效率帶來很大的負面影響。在這種情況下,難道就沒有更簡單清晰的解決辦法了吧?答案當然是:NO!

spl_autoload_register() 滿足了此類需求。 它實際上創建了 autoload 函數的隊列,按定義時的順序逐個執行。相比之下, __autoload() 只可以定義一次。

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
我們繼續改寫上面那個例子:

<?php  function loader($class){    $file = $class . '.php';    if (is_file($file)) {      require_once($file);    }  }  spl_autoload_register('loader');  $a = new A();

或者直接使用匿名函數:

<?php   spl_autoload_register(function($file){  $file = $class . '.php';    if (is_file($file)) {      require_once($file);    }});  $a = new A();

這樣子也是可以正常運行的,這時候php在尋找類的時候就沒有調用__autoload而是調用我們自己定義的函數loader了。同樣的道理,下面這種寫法也是可以的:

<?php  class Loader {    public static function loadClass($class){      $file = $class . '.php';      if (is_file($file)) {        require_once($file);      }    }  }  spl_autoload_register(array('Loader', 'loadClass')); //spl_autoload_register(array(__CLASS__, 'loadClass')); //spl_autoload_register(array($this, 'loadClass')); $a = new A();

更多示例
autoload.php

<?phpdefine('SDK_PATH', __DIR__);require_once SDK_PATH . '/common/functions.php';require_once SDK_PATH . '/common/config.php';spl_autoload_register(function ($class) {  if (false !== stripos($class, 'YJC/Wechat')) {    require_once __DIR__ . '/' . str_replace('//', DIRECTORY_SEPARATOR, substr($class, 10)) . '.php';  }});/*function __autoload($class){  if (false !== stripos($class, 'YJC/Wechat')) {    require_once __DIR__ . '/' . str_replace('//', DIRECTORY_SEPARATOR, substr($class, 10)) . '.php';  }}*/

建議入口文件里養成定義絕對地址SDK_PATH的習慣,這樣require不會出錯。
以上就是本文的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美精品一区二区| 奇米影视亚洲狠狠色| 国产亚洲精品美女| 国模视频一区二区三区| 欧美亚洲另类在线| 国产精品高潮呻吟久久av无限| 国产欧美精品在线| 亚洲伦理中文字幕| 国产一区二中文字幕在线看| 国产一区二区在线免费| 国产精品成人品| 欧美日韩在线视频一区| 岛国视频午夜一区免费在线观看| 91久久在线视频| 7m精品福利视频导航| 91精品在线国产| 国外成人在线直播| 久久婷婷国产麻豆91天堂| 久久久国产精品亚洲一区| 国产精品成人aaaaa网站| 国产精品va在线| 国产一区在线播放| 亚洲第一精品自拍| 日韩一区二区三区xxxx| 91亚洲精品在线观看| 色无极亚洲影院| 久久频这里精品99香蕉| 国产一区二区日韩| 51精品国产黑色丝袜高跟鞋| 久久91精品国产| 亚洲性视频网站| 亚洲黄页视频免费观看| 日韩欧美第一页| 日韩中文字幕网址| 午夜精品久久久99热福利| 亚洲日本中文字幕| 亚洲天堂男人天堂女人天堂| 91av在线免费观看视频| 国产欧美久久久久久| 久久在线免费视频| 亚洲字幕在线观看| 91精品久久久久久久久青青| 97视频免费在线看| 日产精品久久久一区二区福利| 国产一区二区丝袜高跟鞋图片| 亚洲a在线观看| 夜夜嗨av色一区二区不卡| 久久久久久网址| 色噜噜狠狠狠综合曰曰曰| 亚洲国产另类久久精品| 中文字幕日韩高清| 成人黄色av免费在线观看| 亚洲综合中文字幕在线观看| 亚洲精品电影网在线观看| 日韩成人小视频| 欧美一级电影免费在线观看| 黄网站色欧美视频| 国产专区精品视频| 亚洲国内精品在线| 国产成+人+综合+亚洲欧洲| 国产日韩在线免费| www.美女亚洲精品| 成人激情综合网| 国内精品久久久久久影视8| 最近更新的2019中文字幕| 国产精品99久久久久久人| 国产精品日韩欧美| 国产成人一区三区| www.美女亚洲精品| 91精品视频专区| 777777777亚洲妇女| 国产91色在线免费| 91久久精品视频| 国产精品电影观看| 亚洲91精品在线| 97免费视频在线| 亚洲午夜女主播在线直播| 欧美精品18videosex性欧美| 国产精品99久久99久久久二8| 国产欧美一区二区三区久久人妖| 久久精品成人欧美大片| 91免费的视频在线播放| 久久久亚洲国产天美传媒修理工| 欧美精品一区在线播放| 96精品视频在线| 成人动漫网站在线观看| 亚洲色图校园春色| 久久九九热免费视频| 亚洲成人久久一区| 久久在线视频在线| 日韩电影在线观看免费| 日韩精品日韩在线观看| 国产亚洲美女精品久久久| 91日本在线观看| 亚洲香蕉成视频在线观看| 亚洲成人黄色在线| 国产成人黄色av| 1769国内精品视频在线播放| 精品国产依人香蕉在线精品| 日韩精品极品视频| 国产一区二区三区18| 免费不卡在线观看av| 精品久久久久久久久久久久| 欧美激情综合亚洲一二区| 国产精品男人爽免费视频1| 日韩欧美高清在线视频| 国产成人在线一区二区| 欧美国产日韩二区| 久久久精品一区二区| 麻豆国产va免费精品高清在线| 日韩av电影中文字幕| 97欧美精品一区二区三区| 久久久久久久成人| www.欧美精品一二三区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲欧美日韩中文视频| 欧美综合一区第一页| 2020国产精品视频| 欧美孕妇性xx| 欧美成人免费播放| 国产精品露脸av在线| 欧美日韩成人在线视频| 精品在线欧美视频| 日本三级久久久| 亚洲大胆人体av| 国产成人一区二区三区| 91成人精品网站| 欧美日本亚洲视频| 亚洲最大成人网色| 中文字幕亚洲欧美日韩2019| 97视频免费在线观看| 久久久久久国产精品美女| 欧美午夜无遮挡| 97国产在线视频| 日韩电影在线观看中文字幕| 欧美日本高清视频| 在线视频欧美性高潮| 91免费看国产| 久久久久久久激情视频| 久久影视电视剧免费网站清宫辞电视| 色悠久久久久综合先锋影音下载| 亚洲区一区二区| 欧美电影免费观看电视剧大全| 亚洲一区二区三区视频| 91国内产香蕉| 成人免费在线视频网址| 555www成人网| 日韩视频中文字幕| 国产精品福利网站| 欧美成人小视频| 欧美裸体男粗大视频在线观看| 啪一啪鲁一鲁2019在线视频| 97精品一区二区三区| 亚洲国产精品久久久| 91在线观看免费高清完整版在线观看| 91国产视频在线| 国产在线观看一区二区三区| 国产z一区二区三区| x99av成人免费| 国产视频精品久久久| 欧美国产中文字幕| 欧美激情国产日韩精品一区18| 成人激情黄色网| www.欧美免费|