php入口文件的作用
php入口文件能夠完成主動加載性能。
解析PHP入口文件的主動加載性能
php的主動加載:
正在php5之前,咱們要用某個類或類的辦法,那必需include或許require,之后能力應用,每一次用一個類,都需求寫一條include,費事
php作者想簡略點,最佳能援用一個類時,假如以后不include出去,零碎能主動去找到該類,主動引進~
于是:__autoload()函數應運而生。
通常放正在使用順序入口類外面,比方discuz中,放正在class_core.php中。
保舉:《PHP教程》
先講通俗的例子:
第一種狀況:文件A.php中內容以下
class A{
public function __construct(){
echo 'fff';
}
}
?>
文件C.php 中內容以下:
function __autoload($class)
{
$file = $class . '.php';
if (is_file($file)) {
require_once($file);
}
}
$a = new A(); //這邊會主動挪用__autoload,引入A.php文件
?>
第二種狀況:有時我心愿能自界說autoload,而且心愿起一個更酷的名字loader,則C.php改成以下:
function loader($class)
{
$file = $class . '.php';
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register('loader'); //注冊一個主動加載辦法,籠罩原本的__autoload
$a = new A();
?>
第三種狀況:我心愿矮小上一點,用一個類來治理主動加載
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();
?>
以后為最好方式。
通常咱們將spl_autoload_register(*)放正在入口劇本,即一開端就援用出去。比方上面discuz的做法。
if(function_exist('spl_autoload_register')){
spl_autoload_register(array('core','autoload')); //假如是php5以上,存正在注冊函數,則注冊本人寫的core類中的autoload為主動加載函數
}else{
function __autoload($class){ //假如沒有是,則重寫php原生函數__autoload函數,讓其挪用本人的core中函數。
return core::autoload($class);
}
}
這段扔正在入口文件最后面,天然是極好的~
以上就是php入口文件的作用的具體內容,更多請存眷資源魔其它相干文章!
本網站(www.ziyuanmo.com)刊載的所有內容,包括文字、圖片、音頻、視頻、軟件、程序、以及網頁版式設計等均由用戶發表。
虛擬收費資源付款后概不退款,請考慮在三后支付!如有侵權可聯系郵箱:ziyuanmo@admin.com,會在第一時間解決!
資源貓 ? php入口文件的作用-PHP問題
分享到: