国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP類的自動載入機制

高洛峰
發(fā)布: 2016-10-10 10:08:27
原創(chuàng)
1679人瀏覽過

php的自動加載:

在php5以前,我們要用某個類或類的方法,那必須include或者require,之后才能使用,每次用一個類,都需要寫一條include,麻煩

php作者想簡單點,最好能引用一個類時,如果當前沒有include進來,系統(tǒng)能自動去找到該類,自動引進~

于是:__autoload()函數(shù)應(yīng)運而生。

通常放在應(yīng)用程序入口類里面,比如discuz中,放在class_core.php中。

立即學(xué)習(xí)PHP免費學(xué)習(xí)筆記(深入)”;

先講淺顯的例子:

第一種情況:文件A.php中內(nèi)容如下

<?php
class A{
  public function __construct(){
         echo 'fff';
  }
}
?>
文件C.php 中內(nèi)容如下:
<?php   
function __autoload($class)   
{   
$file = $class . '.php';   
if (is_file($file)) {   
require_once($file);   
}   
}   

$a = new A(); //這邊會自動調(diào)用__autoload,引入A.php文件
?>
登錄后復(fù)制

第二種情況:有時我希望能自定義autoload,并且希望起一個更酷的名字loader,則C.php改為如下:

<?php
function loader($class)
{
$file = $class . '.php';
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register('loader'); //注冊一個自動加載方法,覆蓋原有的__autoload
$a = new A();
?>
登錄后復(fù)制

第三種情況:我希望高大上一點,用一個類來管理自動加載

<?php   
class Loader   
{   
public static function loadClass($class)   
{   
$file = $class . '.php';   
if (is_file($file)) {   
require_once($file);   
}   
}   
}   

spl_autoload_register(array('Loader', 'loadClass'));   

$a = new A();
?>
登錄后復(fù)制

當前為最佳形式。

通常我們將spl_autoload_register(*)放在入口腳本,即一開始就引用進來。比如下面discuz的做法。

if(function_exist('spl_autoload_register')){
  spl_autoload_register(array('core','autoload'));  //如果是php5以上,存在注冊函數(shù),則注冊自己寫的core類中的autoload為自動加載函數(shù)
}else{
  function __autoload($class){         //如果不是,則重寫php原生函數(shù)__autoload函數(shù),讓其調(diào)用自己的core中函數(shù)。
    return core::autoload($class);
  }
}
登錄后復(fù)制

這段扔在入口文件最前面,自然是極好的~

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號