久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

20
2017/08

php中自動(dòng)加載類(lèi)_autoload()和spl_autoload_register()實(shí)例詳解

發(fā)布時(shí)間:2017-08-20 21:28:58
發(fā)布者:pengyifeng
瀏覽量:
0

一、_autoload 自動(dòng)加載類(lèi):當(dāng)我們實(shí)例化一個(gè)未定義的類(lèi)時(shí),就會(huì)觸此函數(shù)。到了php7.1以后版本不支持此函數(shù)好像拋棄了
  新建一個(gè)類(lèi)文件名字自己隨便去:news類(lèi)在auto.php文件里面去實(shí)例news類(lèi)而沒(méi)有引入該類(lèi),可以用_autoload自動(dòng)加載方法類(lèi)去處理.

  news.class.php文件

class news{ 
    function do_new() {      
      echo 'aaa';
    }
}

  auto.php文件使用_autoload函數(shù)要定義函數(shù)體自己去定義

function __autoload( $class ) {  
  $file = $class . '.class.php';  
    if ( is_file($file) ) {  
      require_once($file);
    }
} 
$obj = new news();$obj->do_new();

二、spl_autoload_register()這個(gè)函數(shù)(PHP 5 >= 5.1.2)與__autoload有與曲同工之妙,通過(guò)加載自己建的函數(shù)里面處理加載文件,但是文件變量可以自動(dòng)加入?yún)?shù)

  動(dòng)態(tài):實(shí)例調(diào)用的文件還是news.class.php實(shí)例化,spl_autoload文件如下:

function load($class){ //定義引用文件的函數(shù)
    $file = $class . '.class.php';  
    if (is_file($file)) {  
        require_once($file);  
    }
}
spl_autoload_register( 'load' ); //調(diào)用自己定義的load函數(shù)$obj = new news();$obj->do_new();

  靜態(tài):spl_autoload_register() 調(diào)用靜態(tài)方法

class n_static {   
 public static function load( $class ) {     
    $file = $class . '.class.php';  
        if(is_file($file)) {  
            require_once($file);  
        } 
    }
} 
spl_autoload_register(  array('n_static','load')  );
//另一種寫(xiě)法:spl_autoload_register(  "n_static::load"  ); 
$obj = new news();$obj->do_new();


關(guān)鍵詞:
返回列表