PHP物件導向2 類的自動載入

2021-08-02 08:45:44 字數 2176 閱讀 8079

命名空間跟目錄匹配時,可以通過 spl_autoload_register 定義乙個簡單的載入函式實現類的自動載入:

function my_autoload (

$pclassname

)spl_autoload_register

("my_autoload"

);

└─test

└─sub

└─s1.php

└─s2.php

└─k2.php

└─index.php

└─k1.php

<?php

function my_autoload (

$pclassname

)spl_autoload_register

("my_autoload");

require

"k1.php"

;// 直接引入檔案$k=

newk1()

;$k->f1(

);$k2=

new\test\k2()

;// 使用命名空間,通過 my_autoload 實現自動載入

$k2-

>f2(

);$s1=

new\test\sub\s1()

;// 使用命名空間,通過 my_autoload 實現自動載入

$s1-

>

sf1(

);

<?php

class

k1}

<?php

namespace

test

;class

k2}

<?php

namespace

test\sub

;class

s1}

<?php

namespace

test\sub

;class

s2}

註冊乙個或多個給定的函式作為 __autoload 的實現。注意此方法會使__autoload()方法失效。

<?php

//不推薦使用__autoload

// function __autoload($class)

function

my_autoloader1

($class

)function

my_autoloader2

($class

)//將自定義的2個函式註冊為自動載入用的函式

spl_autoload_register

('my_autoloader1');

spl_autoload_register

('my_autoloader2');

// 或者,自 php 5.3.0 起可以使用乙個匿名函式

spl_autoload_register

(function

($class))

;

<?php

class

loader}}

//註冊用於自動載入的靜態方法

spl_autoload_register

(array

('loader'

,'loadclass'))

;//例項化物件時,會去自動載入類檔案'a.php'$a=

newa()

;

<?php

//在類的構造方法中註冊用於自動載入的方法,例項化後就可以用

class

classautoloader

private

function

loader

($classname)}

$autoloader

=new

classautoloader()

;//例項化物件時,會去自動載入類檔案'class1.php'和'class2.php'

$obj

=new

class1()

;$obj

=new

class2()

;

PHP物件導向自動載入類檔案

php實現類自動載入有兩種方法 一 autoload autoload是php中的魔術變數 在執行php指令碼中遇到呼叫不存在類時會自動呼叫該方法 例 這裡有兩個檔案 class demo1 class demo2 現在demo1.php 用到 demo2.php檔案 檔案 require once...

物件導向程式設計 類庫自動載入

目錄 1 php自動載入函式 autoload 2 更靈活的自動載入 使用者自定義載入函式 在例項化物件時,呼叫 autoload 方法,自動找到類檔案進行載入。注意 autoload 函式只有在試圖使用未被定義的類時自動呼叫。1 使用 autoload 函式實現自動載入 init.php 注意 使...

物件導向(二)類的自動載入

spl autoload register callable autoload function bool throw true bool prepend false bool spl autoload register 函式可以註冊任意數量的自動載入器,當使用尚未被定義的類 class 和介面 i...