PHP 自動載入類

2021-10-04 11:42:37 字數 3650 閱讀 2996

在專案開發中,因為乙個檔案中只能寫乙個類,並且在執行過程中會有很多的類參與,如果乙個乙個的載入很麻煩,所以,就需要乙個機制實現在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...