国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 光泽县| 临泽县| 宜良县| 双城市| 铜梁县| 德化县| 河西区| 武川县| 榆林市| 温州市| 大厂| 渭源县| 阿巴嘎旗| 淅川县| 南召县| 昌平区| 宜州市| 新昌县| 云霄县| 巴中市| 道孚县| 繁昌县| 宜兰市| 安乡县| 和龙市| 华容县| 大连市| 舞阳县| 玛曲县| 拜泉县| 邓州市| 铜梁县| 津市市| 迁安市| 都昌县| 正宁县| 吴桥县| 灵宝市| 百色市| 玉门市| 冕宁县|