PHP中的自動載入

2021-10-06 03:07:44 字數 2604 閱讀 6076

為什麼需要自動載入?

在php5之前, 如果需要引入外部的檔案,那麼需要通過include和require命令。如果只是小專案,那麼倒也沒什麼問題,但是當我們做大型專案的時候,大量的include/require則會有很多缺點:

解決方案

在php5之後,zend提供了__autoload函式

function

__autoload

($classname

)$obj

=new

demo()

;結果:deprecated:

__autoload

() is deprecated,

usespl_autoload_register

() instead in /www/php/test_code/autoload.php on line 3

string(4

)"demo"

更好的方法

使用php5提供的sql_autoload_的一類函式,這也是composer的基石

example1:

function

my_autoload

($classname

)spl_autoload_register

("my_autoload");

$obj

=new

demo()

;example2:

class

myautoload

}spl_autoload_register

(array

(new

myautoload()

,'my_autoload'))

;$obj

=new

demo()

;example3:

class

myautoload

}spl_autoload_register

(array

(myautoload:

:class

,'my_autoload'))

;$obj

=new

demo()

;example4:

function

my_autoload

($classname

)class

myautoload

}spl_autoload_register

(array

(myautoload:

:class

,'my_autoload'))

;spl_autoload_register

("my_autoload");

$obj

=new

demo()

;

class

myautoload

}spl_autoload_register

(array

(myautoload:

:class

,'my_autoload'))

;spl_autoload_call

("demo");

$obj

=new

demo()

;var_dump

($obj);

結果(demo類已存在的情況):

string(13

)"demo in class"(只有一次)

object

(demo)

#1 (0)

spl_autoload

("demo"

,".php");

$obj

=new

demo()

;var_dump

($obj);

結果(此時在同目錄下,存在demo.php):

object

(demo)

#1 (0)

function

my_autoload

($classname

)spl_autoload_register

("my_autoload");

class

myautoload

}spl_autoload_register

(array

(myautoload:

:class

,'my_autoload'))

;$result

=spl_autoload_functions()

;var_dump

($result);

exit()

;結果:

array(2

)}

spl_autoload_extensions

('.php');

spl_autoload

("demo");

$obj

=new

demo()

;var_dump

($obj);

結果:object

(demo)

#1 (0)

php自動載入類,PHP中類的自動載入的方法

類的自動載入是指,在外面的頁面中,並不需要去 引入 類檔案,但是程式會在需要的時候動態載入需要的類檔案。方法1 使用 autoload魔術函式 當程式需要某個類時,就會去呼叫該函式,該函式我們需要自己去定義並在其中寫好載入類檔案的通用語句。需要類是自動呼叫,而且會傳進來乙個類名,這個案例的檔名為21...

PHP中類的自動載入

首先認識乙個函式 spl autoload register 官方文件 spl autoload register 滿足了多條 autoload 的需求。它實際上建立了 autoload 函式的佇列,按定義時的順序逐個執行。相比之下,autoload 只可以定義一次。沒啥好說的,上段 functio...

PHP中類的自動載入

什麼是類的自動載入?類的自動載入是指 在其他的頁面中,要想使用其他的類檔案,並不需要去 引入 包含的類檔案,程式會在需要乙個類的時候自動去 動態載入 這個類。什麼情況下需要乙個類?建立乙個物件的時候 例項化 class apublic static jingtai obj newa 例項化a類直接使...