摘要:官網(wǎng)關(guān)于加載路徑解釋如下被包含文件先按參數(shù)給出的路徑尋找,如果沒有給出目錄只有文件名時(shí)則按照指定的目錄尋找。如果最后仍未找到文件則結(jié)構(gòu)會發(fā)出一條警告這一點(diǎn)和不同,后者會發(fā)出一個(gè)致命錯(cuò)誤。
官網(wǎng)關(guān)于include加載路徑解釋如下:
被包含文件先按參數(shù)給出的路徑尋找,如果沒有給出目錄(只有文件名)時(shí)則按照 include_path 指定的目錄尋找。如果在 include_path 下沒找到該文件則 include 最后才在調(diào)用腳本文件所在的目錄和當(dāng)前工作目錄下尋找。如果最后仍未找到文件則 include 結(jié)構(gòu)會發(fā)出一條警告;這一點(diǎn)和 require 不同,后者會發(fā)出一個(gè)致命錯(cuò)誤。
include_path這是一個(gè)需要在php.ini中設(shè)置的值,一般情況下我們不會輕易設(shè)置它
腳本文件所在的目錄顧名思義就是當(dāng)前php文件所在的目錄的路徑
當(dāng)前工作目錄這個(gè)值是容易混淆的,因?yàn)檫@個(gè)所謂的當(dāng)前工作目錄路徑其實(shí)和文件是否被include有關(guān)系!這一點(diǎn)在框架中更容易被混淆、被忽略!
實(shí)例說明文件目錄結(jié)構(gòu)如下:
- require -- app --- application.php --- db.php -- index.php -- db2.phpindex.php中的代碼
application.php你猜運(yùn)行index.php后的顯示的打印結(jié)果是什么?
你是不是認(rèn)為 $config2 = include "db2.php"; 會報(bào)錯(cuò)?
然而結(jié)果是這樣的
Array ( [host] => 127.0.0.1 [username] => root [password] => root ) Array ( [host] => 127.0.0.1 [username] => root2 [password] => root2 ) __FILE__:E:dongchaoprojects estphp equireappapplication.php __DIR__:E:dongchaoprojects estphp equireapp Working Dir:E:dongchaoprojects estphp equire正如官網(wǎng)所述,include會嘗試在當(dāng)前腳本所在目錄和當(dāng)前工作目錄查找文件是否存在。db.php所在的目錄正是當(dāng)前腳本所在目錄,而當(dāng)前工作目錄則是index.php所在的目錄,如果把這個(gè)看成是一個(gè)框架的目錄結(jié)構(gòu),那么當(dāng)前工作目錄其實(shí)就是框架入口文件所在的目錄。
getcwd函數(shù)可以獲取到當(dāng)前工作目錄路徑
得出結(jié)論:為了不引起混淆,提高代碼可讀性,建議引入文件時(shí)使用絕對路徑! 使用絕對路徑還可以避免include函數(shù)多余的兩次查找(從當(dāng)前腳本所在目錄和當(dāng)前工作目錄進(jìn)行查找),因此使用絕對路徑能提高執(zhí)行效率!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/26070.html
摘要:觸發(fā)器文件可以手動更新,也可以使用插件進(jìn)行更新。例如,要配置重新啟動以始終使用觸發(fā)器文件,你需要添加以下屬性遠(yuǎn)程應(yīng)用程序開發(fā)工具并不局限于本地開發(fā),在遠(yuǎn)程運(yùn)行應(yīng)用程序時(shí),還可以使用幾個(gè)特性。 20. 開發(fā)者工具 Spring Boot包括一組額外的工具,這些工具可以使應(yīng)用程序開發(fā)體驗(yàn)變得更加愉快,spring-boot-devtools模塊可以包含在任何項(xiàng)目中,以提供額外的develo...
摘要:前言在開始之前,歡迎關(guān)注我自己的博客這篇文章是對自動加載功能的一個(gè)總結(jié),內(nèi)容涉及的自動加載功能的命名空間的與標(biāo)準(zhǔn)等內(nèi)容。要實(shí)現(xiàn)第一步,第二步的功能,必須在開發(fā)時(shí)約定類名與磁盤文件的映射方法,只有這樣我們才能根據(jù)類名找到它對應(yīng)的磁盤文件。 前言 在開始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn 這篇文章是對PHP自動加載功能的一個(gè)總結(jié),內(nèi)容涉及PHP的自動加載功能、P...
摘要:我們可以使用內(nèi)置的為所有的依賴定義這個(gè)變量這是開發(fā)環(huán)境這是生產(chǎn)環(huán)境作者正兒八經(jīng)的嬌嬌鏈接來源掘金著作權(quán)歸作者所有。 1.webpack概念 WebPack可以看做是模塊打包機(jī):它做的事情是,分析你的項(xiàng)目結(jié)構(gòu),找到JavaScript模塊以及其它的一些瀏覽器不能直接運(yùn)行的拓展語言(Scss,TypeScript等),并將其打包為合適的格式以供瀏覽器使用。 構(gòu)建就是把源代碼轉(zhuǎn)換成發(fā)布到線上...
摘要:安裝安裝完成之后,你應(yīng)該可以使用了,方式如下上述命令應(yīng)該自動在瀏覽器中打開。 前言 webpack2和vue2已經(jīng)不是新鮮東西了,滿大街的文章在講解webpack和vue,但是很多內(nèi)容寫的不是很詳細(xì),對于很多個(gè)性化配置還是需要自己過一遍文檔。Vue官方提供了多個(gè)vue-templates,基于vue-cli用官方的webpack模板居多,不過對于很多人來說,官方的webpack模板的配...
閱讀 3590·2023-04-25 22:45
閱讀 1353·2021-11-11 16:54
閱讀 2858·2019-08-30 15:44
閱讀 3251·2019-08-30 15:44
閱讀 1710·2019-08-30 13:55
閱讀 1012·2019-08-29 18:45
閱讀 1252·2019-08-29 17:25
閱讀 1073·2019-08-29 12:59