国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

php spl_autoload_register與__autoload方法詳解

2024-09-04 11:43:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

php spl_autoload_register與__autoload方法詳解

在談到框架自動(dòng)加載類(lèi)的方面,我大概翻了一下,現(xiàn)在主流的框架系統(tǒng)都使用spl_autoload_register函數(shù),而非__autoload函數(shù).

  1. function my_own_loader($classname
  2.     $class_file = strtolower($classname).".php"
  3.     if (file_exists($class_file)){ 
  4.         require_once($class_file); 
  5.     } 
  6.  
  7. spl_autoload_register("my_own_loader"); 
  8.  
  9. $a = new A(); 

__autoload 方法在 spl_autoload_register 后會(huì)失效,因?yàn)?autoload_func 函數(shù)指針已指向 spl_autoload 方法

* 可以通過(guò)下面的方法來(lái)把 _autoload 方法加入 autoload_functions list

spl_autoload_register( '__autoload' );

此外我們還可以使用我們自定義的加載方法:

第一種函數(shù)式:

  1. function my_own_loader($classname
  2.     $class_file = strtolower($classname).".php"
  3.     if (file_exists($class_file)){ 
  4.         require_once($class_file); 
  5.     } 
  6.  
  7. spl_autoload_register("my_own_loader"); 
  8.  
  9. $a = new A(); 

第二種類(lèi)式:class Loader

  1.     public static function my_own_loader($classname
  2.     { 
  3.         $class_file = strtolower($classname).".php"
  4.         if (file_exists($class_file)){ 
  5.             require_once($class_file); 
  6.         } 
  7.     } 
  8.  
  9. // 通過(guò)數(shù)組的形式傳遞類(lèi)和方法的名稱(chēng) 
  10. spl_autoload_register(array("my_own_loader","Loader")); 
  11.  
  12. $a = new A(); 

spl_autoload_register()函數(shù)應(yīng)該是主流框架使用最多的也是非常核心的函數(shù)之一,可實(shí)現(xiàn)自動(dòng)注冊(cè)函數(shù)和類(lèi),實(shí)現(xiàn)類(lèi)似__autoload() 函數(shù)功能,簡(jiǎn)化了類(lèi)的調(diào)用與加載,提高了工作的效率.

支持版本:PHP 5 >= 5.1.2

至于效率問(wèn)題,php手冊(cè)上有如此之話:

bool spl_autoload_register ([ callback $autoload_function ] )

將函數(shù)注冊(cè)到SPL __autoload函數(shù)棧中,如果該棧中的函數(shù)尚未激活,則激活它們,貌似他么指向同一個(gè)堆棧,效率上都是大哥二哥的問(wèn)題.

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 息烽县| 阜平县| 湟中县| 潜江市| 眉山市| 遂昌县| 伊川县| 阿拉善盟| 溧水县| 湟源县| 寻乌县| 佳木斯市| 托克托县| 自贡市| 北川| 临漳县| 长葛市| 普定县| 辛集市| 得荣县| 安西县| 曲周县| 从化市| 宣化县| 顺义区| 广南县| 漳州市| 北辰区| 新化县| 项城市| 蓬安县| 和平县| 蓬溪县| 辽阳县| 黄山市| 行唐县| 乐至县| 新龙县| 迁西县| 长宁区| 洛扎县|