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

首頁 > 語言 > PHP > 正文

PHP中spl_autoload_register函數的用法總結

2024-09-04 11:49:51
字體:
來源:轉載
供稿:網友

spl_autoload_register

(PHP 5 >= 5.1.2)

spl_autoload_register — 注冊__autoload()函數

說明

bool spl_autoload_register ([ callback $autoload_function ] )

將函數注冊到SPL __autoload函數棧中。如果該棧中的函數尚未激活,則激活它們。

如果在你的程序中已經實現了__autoload函數,它必須顯式注冊到__autoload棧中。因為 spl_autoload_register()函數會將Zend Engine中的__autoload函數取代為spl_autoload()或spl_autoload_call()。

參數

autoload_function

欲注冊的自動裝載函數。如果沒有提供任何參數,則自動注冊autoload的默認實現函數 spl_autoload()。

返回值

如果成功則返回 TRUE,失敗則返回 FALSE。

注:SPL是Standard PHP Library(標準PHP庫)的縮寫。它是PHP5引入的一個擴展庫,其主要功能包括autoload機制的實現及包括各種Iterator接口或類。 SPL autoload機制的實現是通過將函數指針autoload_func指向自己實現的具有自動裝載功能的函數來實現的。SPL有兩個不同的函數 spl_autoload, spl_autoload_call,通過將autoload_func指向這兩個不同的函數地址來實現不同的自動加載機制。

范例

設我們有一個類文件A.php,里面定義了一個名字為A的類:

  1. <?php    
  2. class A    
  3. {    
  4. public function __construct()    
  5. {    
  6. echo 'Got it.';    
  7. }    
  8.  
  9. <?php 
  10. class A 
  11. public function __construct() 
  12. echo 'Got it.'

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

  1. <?php    
  2. require('A.php');    
  3. $a = new A(); 
  4.  
  5. <?php 
  6. require('A.php'); 
  7. $a = new A(); 

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

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

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

  1. <?php    
  2. function __autoload($class)    
  3. {    
  4. $file = $class . '.php';    
  5. if (is_file($file)) {    
  6. require_once($file);    
  7. }    
  8. }    
  9.  
  10. $a = new A(); 
  11. //Vevb.com 
  12. <?php 
  13. function __autoload($class
  14. $file = $class . '.php'
  15. if (is_file($file)) { 
  16. require_once($file); 
  17.  
  18. $a = new A(); 

當然上面只是最簡單的示范,__autoload只是去include_path尋找類文件并加載,我們可以根據自己的需要定義__autoload加載類的規則。

此外,假如我們不想自動加載的時候調用__autoload,而是調用我們自己的函數(或者類方法),我們可以使用spl_autoload_register來注冊我們自己的autoload函數。它的函數原型如下:

bool spl_autoload_register ( [callback $autoload_function] )

我們繼續改寫上面那個例子:

  1. <?php    
  2. function loader($class)    
  3. {    
  4. $file = $class . '.php';    
  5. if (is_file($file)) {    
  6. require_once($file);    
  7. }    
  8. }    
  9.  
  10. spl_autoload_register('loader');    
  11.  
  12. $a = new A(); 
  13.  
  14. <?php 
  15. function loader($class
  16. $file = $class . '.php'
  17. if (is_file($file)) { 
  18. require_once($file); 
  19.  
  20. spl_autoload_register('loader'); 
  21.  
  22. $a = new A(); 

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

  1. <?php    
  2. class Loader    
  3. {    
  4. public static function loadClass($class)    
  5. {    
  6. $file = $class . '.php';    
  7. if (is_file($file)) {    
  8. require_once($file);    
  9. }    
  10. }    
  11. }    
  12.  
  13. spl_autoload_register(array('Loader''loadClass'));    
  14.  
  15. $a = new A(); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级淫片videoshd| 久久国产精品免费视频| 自拍偷拍亚洲欧美| 国产脚交av在线一区二区| 日韩大胆人体377p| 日本精品免费观看| 国产精品91在线观看| 国产精品免费小视频| 国产91在线播放| 欧美日韩爱爱视频| 亚洲成人精品视频| 国产精品夜间视频香蕉| 国产人妖伪娘一区91| 亚洲欧美日韩精品久久| 青青草精品毛片| 亚洲精品美女免费| 亲爱的老师9免费观看全集电视剧| 欧美精品一区二区免费| 这里只有视频精品| 91亚洲午夜在线| 久久成年人免费电影| 国产午夜精品麻豆| 一区二区成人av| 亚洲第一黄色网| 日韩hd视频在线观看| 亚洲精品成人免费| 国产精品h片在线播放| 精品香蕉一区二区三区| 国产成人精品在线| 久久免费国产精品1| 欧美日韩福利视频| 色综合久久久888| 狠狠干狠狠久久| 久久综合网hezyo| 国产色综合天天综合网| 国产精品久久久久久网站| 亚洲美女av在线播放| 亚洲一区二区三区视频| 热re91久久精品国99热蜜臀| 在线精品91av| 国产精品丝袜久久久久久高清| 久色乳综合思思在线视频| 一区二区三区国产在线观看| 久99九色视频在线观看| 97国产suv精品一区二区62| 91国在线精品国内播放| 高清在线视频日韩欧美| 正在播放欧美视频| 国产精品一区二区三区毛片淫片| 国产精品日韩一区| 久久人人97超碰精品888| 精品成人69xx.xyz| 久久精品在线视频| 欧美激情奇米色| 久久视频这里只有精品| 92裸体在线视频网站| 欧美精品久久久久| 亚洲欧美日韩视频一区| 九九热视频这里只有精品| 久久久国产视频| 亚洲激情第一页| 午夜精品一区二区三区在线| 91成人精品网站| 日韩综合视频在线观看| 国产亚洲日本欧美韩国| 欧美大码xxxx| 97av在线播放| 久久久久久高潮国产精品视| 欧美在线视频a| 韩曰欧美视频免费观看| 亚洲精品理论电影| 青青精品视频播放| 国产精品美女免费看| 国产欧美日韩高清| 91禁外国网站| 亚洲成人久久电影| 亚洲爱爱爱爱爱| 日韩在线观看免费高清| 亚洲精品美女免费| 91亚洲va在线va天堂va国| 亚洲精品电影久久久| 久久人人爽人人爽人人片av高请| 国产小视频91| 欧美日韩免费区域视频在线观看| 国产日韩在线亚洲字幕中文| 欧美午夜无遮挡| 亚洲人成网在线播放| 日韩在线视频导航| 国产在线视频不卡| 久久久之久亚州精品露出| 亚洲精品自拍第一页| 欧美激情xxxx| 成人免费视频网| 欧美做受高潮1| 欧美日韩一区二区在线播放| 成人在线一区二区| 91成人天堂久久成人| 国产视频综合在线| 亚洲一二在线观看| 国产成人精品av在线| 色综合久久中文字幕综合网小说| 91免费版网站入口| 2019最新中文字幕| 久久久噜噜噜久久中文字免| 成人a在线观看| 亚洲free嫩bbb| 国产精品日日做人人爱| 亚洲精品欧美日韩专区| 成人春色激情网| 国产在线精品成人一区二区三区| 欧美一级大片在线观看| 亚洲国产精品网站| 精品视频久久久久久久| 高清在线视频日韩欧美| 国产精品久久激情| 成人中文字幕+乱码+中文字幕| 久久久久国产精品www| 亚洲人成在线免费观看| 国产亚洲精品一区二区| 日韩高清欧美高清| 精品成人在线视频| 亚洲欧洲午夜一线一品| 日本aⅴ大伊香蕉精品视频| 97视频在线观看免费高清完整版在线观看| 91精品一区二区| 在线电影欧美日韩一区二区私密| 亚洲第一精品夜夜躁人人爽| 成人在线播放av| 97视频在线免费观看| 亚洲福利在线观看| 亚洲色图国产精品| 有码中文亚洲精品| 欧美一级电影久久| 国产精品免费一区豆花| 精品动漫一区二区三区| 久久全球大尺度高清视频| 久久久久久久久久久久久久久久久久av| 国产成人精品综合久久久| 欧美老肥婆性猛交视频| 国产日产欧美精品| 国模精品一区二区三区色天香| 欧美精品videos性欧美| 亚洲国产第一页| 亚洲黄页网在线观看| 亚洲色图综合网| 国产日产欧美精品| 久久久久久中文字幕| 国模吧一区二区三区| 国产一区av在线| 亚洲精选一区二区| 日韩中文字幕精品| 九九精品视频在线| 亚洲色图50p| 国产91精品久久久久久久| 精品一区精品二区| 精品中文视频在线| 国产伦精品免费视频| 亚洲乱码国产乱码精品精天堂| 国产成人精品在线视频| 97视频网站入口| 日韩中文字幕在线免费观看| 久久国产精品首页| 国产精品美女久久久免费| 欧美老肥婆性猛交视频|