成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

include加載路徑解析 - 你可能不知道的特性

betacat / 1052人閱讀

摘要:官網(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.php
index.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

相關(guān)文章

  • Spring Boot 參考指南(開發(fā)者工具)

    摘要:觸發(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...

    APICloud 評論0 收藏0
  • PHP自動加載功能原理解析

    摘要:前言在開始之前,歡迎關(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...

    Imfan 評論0 收藏0
  • webpack4.0打包總結(jié)

    摘要:我們可以使用內(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ā)布到線上...

    XFLY 評論0 收藏0
  • 從0到1搭建webpack2+vue2自定義模板詳細(xì)教程

    摘要:安裝安裝完成之后,你應(yīng)該可以使用了,方式如下上述命令應(yīng)該自動在瀏覽器中打開。 前言 webpack2和vue2已經(jīng)不是新鮮東西了,滿大街的文章在講解webpack和vue,但是很多內(nèi)容寫的不是很詳細(xì),對于很多個(gè)性化配置還是需要自己過一遍文檔。Vue官方提供了多個(gè)vue-templates,基于vue-cli用官方的webpack模板居多,不過對于很多人來說,官方的webpack模板的配...

    cartoon 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<