深入PHP autoload機(jī)制的詳解
在使用PHP的OO模式開(kāi)發(fā)系統(tǒng)時(shí),通常大家習(xí)慣上將每個(gè)類(lèi)的實(shí)現(xiàn)都存放在一個(gè)單獨(dú)的文件里,這樣會(huì)很容易實(shí)現(xiàn)對(duì)類(lèi)進(jìn)行復(fù)用,同時(shí)將來(lái)維護(hù)時(shí)也很便 利。這 也是OO設(shè)計(jì)的基本思想之一。在PHP5之前,如果需要使用一個(gè)類(lèi),只需要直接使用include/require將其包含進(jìn)來(lái)即可。
下面是一個(gè)實(shí)際的例 子:
/* Person.class.php */
<?php
class Person {
var $name, $age;
function __construct ($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
?>
/* no_autoload.php */
<?php
require_once (”P(pán)erson.class.php”);
$person = new Person(”Altair”, 6);
var_dump ($person);
?>
在這個(gè)例子中,no-autoload.php文件需要使用Person類(lèi),它使用了require_once將其包含,然后就可以直接使用Person類(lèi)來(lái)實(shí)例化一個(gè)對(duì)象。
但 隨著項(xiàng)目規(guī)模的不斷擴(kuò)大,使用這種方式會(huì)帶來(lái)一些隱含的問(wèn)題:如果一個(gè)PHP文件需要使用很多其它類(lèi),那么就需要很多的require/include語(yǔ) 句,這樣有可能會(huì)造成遺漏或者包含進(jìn)不必要的類(lèi)文件。如果大量的文件都需要使用其它的類(lèi),那么要保證每個(gè)文件都包含正確的類(lèi)文件肯定是一個(gè)噩夢(mèng)。
PHP5為這個(gè)問(wèn)題提供了一個(gè)解決方案,這就是類(lèi)的自動(dòng)裝載(autoload)機(jī)制。autoload機(jī)制可以使得PHP程序有可能在使用類(lèi)時(shí)才自動(dòng)包含類(lèi)文件,而不是一開(kāi)始就將所有的類(lèi)文件include進(jìn)來(lái),這種機(jī)制也稱(chēng)為lazy loading。
下面是使用autoload機(jī)制加載Person類(lèi)的例子:
/* autoload.php */
<?php
function __autoload($classname) {
require_once ($classname . “class.php”);
}
$person = new Person(”Altair”, 6);
var_dump ($person);
?>
- PHP中spl_autoload_register()和__autoload()區(qū)別分析
- php自動(dòng)加載autoload機(jī)制示例分享
- php中autoload的用法總結(jié)
- PHP中spl_autoload_register函數(shù)的用法總結(jié)
- php中使用__autoload()自動(dòng)加載未定義類(lèi)的實(shí)現(xiàn)代碼
- 說(shuō)說(shuō)PHP的autoLoad自動(dòng)加載機(jī)制
- PHP的autoload機(jī)制的實(shí)現(xiàn)解析
- PHP __autoload()方法真的影響性能嗎?
- PHP函數(shù)spl_autoload_register()用法和__autoload()介紹
- zend api擴(kuò)展的php對(duì)象的autoload工具
- PHP的autoload自動(dòng)加載機(jī)制使用說(shuō)明
- PHP之a(chǎn)utoload運(yùn)行機(jī)制實(shí)例分析
相關(guān)文章
PHP入門(mén)教程之表單與驗(yàn)證實(shí)例詳解
這篇文章主要介紹了PHP入門(mén)教程之表單與驗(yàn)證技巧,結(jié)合實(shí)例形式分析了php表單提交與數(shù)據(jù)驗(yàn)證的基本技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-09-09phpMyadmin 用戶(hù)權(quán)限中英對(duì)照
在登陸phpmyadmin時(shí)選擇了“中文 – Chinese Simplified“,那么就有中文的管理界面了,雖然在phpmyadmin中顯示的用戶(hù)權(quán)限顯示的還是英文的,但是鼠標(biāo)放上去時(shí),有中文的提示,這里把phpmyadmin v3.2.4中英文對(duì)照表附上2010-04-04PHP實(shí)現(xiàn)微信公眾號(hào)企業(yè)號(hào)自定義菜單接口示例
這篇文章主要介紹了PHP實(shí)現(xiàn)微信公眾號(hào)企業(yè)號(hào)自定義菜單接口,結(jié)合實(shí)例形式分析了php自定義微信菜單類(lèi)及微信接口相關(guān)操作技巧,需要的朋友可以參考下2017-08-08深入理解PHP原理之錯(cuò)誤抑制與內(nèi)嵌HTML分析
PHP支持內(nèi)嵌HTML的, 那么對(duì)于PHP文件中, PHP標(biāo)簽外的HTML會(huì)怎么處理呢? 它和直接輸出HTML有什么區(qū)別么?2011-05-05PHP通過(guò)CURL實(shí)現(xiàn)定時(shí)任務(wù)的圖片抓取功能示例
這篇文章主要介紹了PHP通過(guò)CURL實(shí)現(xiàn)定時(shí)任務(wù)的圖片抓取功能,涉及php的curl及dom操作相關(guān)技巧,需要的朋友可以參考下2016-10-10