日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php 自动加载函数,PHP自动加载的实例详解

發(fā)布時(shí)間:2023/12/19 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 自动加载函数,PHP自动加载的实例详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)PHP項(xiàng)目,通常只有一個(gè)入口文件index.php,我們通常會(huì)在這個(gè)入口文件中寫(xiě)入自動(dòng)加載函數(shù),用來(lái)require以后會(huì)實(shí)例化的類(lèi)文件。如:spl_autoload_register(function ($className) {

require 'class/' . $className . '.php';

});

通過(guò)以上的代碼,我們發(fā)現(xiàn):在自動(dòng)加載時(shí),我們需要指定存放類(lèi)的文件夾,以便找到相應(yīng)的類(lèi)。那么問(wèn)題產(chǎn)生了。

在引入命名空間之前:

我們的項(xiàng)目目錄

index.php

Controller.php

在index.php中我們需要實(shí)例化一個(gè)controller目錄下的Controller類(lèi),并且調(diào)用這個(gè)對(duì)象的model()方法,而這個(gè)方法則需要實(shí)例化一個(gè)model目錄下的Model類(lèi)。我們運(yùn)行一下index.php:

Warning: require(controller/Model.php): failed to open stream: No such file or directory

提示沒(méi)有這個(gè)文件或目錄。原因很簡(jiǎn)單:PHP在new Model()的時(shí)候,是自動(dòng)去controller目錄下去require的,所以找不到。

那么,我們的自動(dòng)加載函數(shù)應(yīng)該怎么寫(xiě)才能解決問(wèn)題呢?很顯然,把'controller/'換成'model/' 或者 不寫(xiě)目錄,都不能正常加載。于是,使用命名空間的好處就顯現(xiàn)出來(lái)了。

引入命名空間之后:

index.php

Controller.php

Model.php

我們按照文件目錄的結(jié)構(gòu)來(lái)為每個(gè)類(lèi)寫(xiě)入命名空間,當(dāng)在一個(gè)類(lèi)中需要實(shí)例化另外一個(gè)類(lèi)時(shí),IDE會(huì)幫我們寫(xiě)入usenamespace; 。這樣,我們?cè)趯?xiě)自動(dòng)加載的時(shí)候,就不用考慮將要加載的類(lèi)在哪一個(gè)文件目錄下了,只需要這樣寫(xiě):spl_autoload_register(function ($class) {

require $class . '.php';

});

因?yàn)槲覀冊(cè)趇ndex.php中use了所用到的類(lèi)的命名空間,自動(dòng)加載函數(shù)會(huì)到相應(yīng)的命名空間中去尋找類(lèi)(上述代碼中的$class就相當(dāng)于是'controller\Controller'),而這些類(lèi)中又需要實(shí)例化其他的類(lèi),因?yàn)檫@些類(lèi)中也聲明了use 其他類(lèi)的命名空間;,所以自動(dòng)加載函數(shù)又會(huì)去相應(yīng)的命名空間中去require其他類(lèi)。

這樣,我們就不會(huì)為加載類(lèi)而發(fā)愁了,極大地解放了我們的編程負(fù)擔(dān)。

總結(jié)

以上是生活随笔為你收集整理的php 自动加载函数,PHP自动加载的实例详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。