色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

深入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í)際的例 子:
復(fù)制代碼 代碼如下:
/* 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)的例子:
復(fù)制代碼 代碼如下:
/* autoload.php */
<?php
function __autoload($classname) {
require_once ($classname . “class.php”);
}

$person = new Person(”Altair”, 6);
var_dump ($person);
?>

php技術(shù)深入PHP autoload機(jī)制的詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 宜州市| 石狮市| 澜沧| 荣成市| 七台河市| 湛江市| 东兴市| 岳阳市| 万安县| 新郑市| 黑河市| 延川县| 广水市| 延安市| 乐清市| 兴海县| 靖安县| 衡阳市| 九寨沟县| 海安县| 乌拉特前旗| 井陉县| 吴桥县| 稷山县| 临西县| 拉孜县| 弥勒县| 砚山县| 永定县| 临城县| 辽阳市| 锡林郭勒盟| 黑水县| 九江县| 鹿泉市| 敖汉旗| 凌源市| 张家港市| 松溪县| 绥阳县| 张家口市|