在專案開發中,因為乙個檔案中只能寫乙個類,並且在執行過程中會有很多的類參與,如果乙個乙個的載入很麻煩,所以,就需要乙個機制實現在php執行過程中自動載入需要的類。
1.2.1 類的規則
乙個檔案中只能放乙個類(必須)
檔名和類名同名(必須)
類檔案以.class.php結尾(不是必須)
1.2.2 手動載入類
1、建立goods.class.php
頁面
<?php
//商品類
abstract
class
goods
public
abstract
function
getname()
;}
2、建立book.class.php頁面
<?php
//圖書類
class
book
extends
goods》";}}
3、建立phone.class.php頁面
<?php
//**類
class
phone
extends
goods
}
4、在php頁面上載入類檔案
<?php
require
'./goods.class.php'
;//手動載入類檔案
require
'./book.class.php'
;//手動載入類檔案
require
'./phone.class.php'
;//手動載入類檔案
//測試
$book
=new
book()
;$book
->
setname
('物件導向程式設計');
$phone
=new
phone()
;$phone
->
setname
('蘋果6s');
$book
->
getname()
;$phone
->
getname()
;
執行結果
1.2.3 自動載入類
當缺少類的時候自動的呼叫__autoload()
函式,並且將缺少的類名作為引數傳遞給__autoload()
。
<?php
/**作用:自動載入類
*@param $class_name string 缺少的類名
*/function
__autoload
($class_name
).class.php";}
//測試
$book
=new
book()
;$book
->
setname
('物件導向程式設計');
$phone
=new
phone()
;$phone
->
setname
('蘋果6s');
$book
->
getname()
;$phone
->
getname()
;
注意:__autoload()函式在php7.2以後就不支援了。
1.2.4 註冊載入類
通過spl_autoload_register()註冊__autoload()函式
<?php
//方法一:
/*//載入類函式
function loadclass($class_name) .class.php";
}//註冊載入類函式
spl_autoload_register('loadclass');
*///方法二:
spl_autoload_register
(function
($class_name
).class.php";}
);//測試
$book
=new
book()
;$book
->
setname
('物件導向程式設計');
$phone
=new
phone()
;$phone
->
setname
('蘋果6s');
$book
->
getname()
;$phone
->
getname()
;
1、spl_autoload_register()可以註冊多個自動載入函式
<?php
function
load1
($class
).class.php";}
function
load2
($class
).php";}
function
load3
($class
).fun.php";}
spl_autoload_register
('load1');
spl_autoload_register
('load2');
spl_autoload_register
('load3'
);
2、php5.1以後就開始支援此函式。
1.2.5 類檔案儲存不規則的載入方法
將類名和檔案位址做乙個對映,組成乙個關聯陣列。
$map
=array
(//類名 => 類檔案位址
'goods'
=>
'./aa/goods.class.php'
,'book'
=>
'./bb/book.class.php'
,'phone'
=>
'./cc/phone.class.php'
);
**如下
<?php
spl_autoload_register
(function
($class_name))
;//測試
$book
=new
book()
;$book
->
setname
('物件導向程式設計');
$phone
=new
phone()
;$phone
->
setname
('蘋果6s');
$book
->
getname()
;$phone
->
getname()
;
在專案中,絕大部分都是規則儲存的,不規則的比較少。 php自動載入類
php類的自動載入機制 php的自動載入 在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩 php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進 於是 au...
php自動載入類
先說乙個魔術方法 tostring 方法 當我們在定義類中成員後,通過構建物件,我們無法直接通過輸出物件得到物件的內容,這時我們可以通過構造乙個魔術方法 tostring 在構建物件的同時,啟用這個魔術方法,從而達到直接輸出物件內容的目的 例子class ren r new ren echo r 轉...
php自動載入類,PHP中類的自動載入的方法
類的自動載入是指,在外面的頁面中,並不需要去 引入 類檔案,但是程式會在需要的時候動態載入需要的類檔案。方法1 使用 autoload魔術函式 當程式需要某個類時,就會去呼叫該函式,該函式我們需要自己去定義並在其中寫好載入類檔案的通用語句。需要類是自動呼叫,而且會傳進來乙個類名,這個案例的檔名為21...