tft每日頭條

 > 科技

 > php中的技術選型學習

php中的技術選型學習

科技 更新时间:2024-07-31 01:08:35

php文件加載有四種語句:

1. include

2. require

3. include_once

4. require_once

php中的技術選型學習(一文讀懂PHP文件加載機制)1

方法詳解:

1. `include` 語句包含并運行指定文件。

2. `require` 和 `include` 幾乎完全一樣,除了處理失敗的方式不同之外。`require` 在出錯時産生 `E_COMPILE_ERROR`(編譯緻命錯誤 64 編譯時緻命性錯。這就像由Zend腳本引擎生成了一個 `E_ERROR`。) 級别的錯誤。換句話說将導緻腳本中止而 `include` 隻産生警告(`E_WARNING`),腳本會繼續運行。

3. `include_once` 語句在腳本執行期間包含并運行指定文件。此行為和 `include` 語句類似,唯一區别是如果該文件中已經被包含過,則不會再次包含。如同此語句名字暗示的那樣,隻會包含一次。可以用于在腳本執行期間同一個文件有可能被包含超過一次的情況下,想确保它隻被包含一次以避免函數重定義,變量重新賦值等問題。

  • 直接引入(包含)文件默認是以上面set_include_path設置的目錄為環境目錄,環境目錄找不到再從當前目錄找

  • /表示服務器根目錄,linux上面直接表示磁盤根目錄,Windows下面表示某個磁盤根目錄例如D:\\\\,`realpath()`可以返回絕對路徑。

  • ./表示當前運行文件的同級目錄(入口),而不是當前腳本所在的目錄(include 語句所在腳本文件的目錄)

  • 如果以相對于當前腳本文件引用文件請用__DIR__常量

  • 注意:第一種情況,請小心了!這個一般表示從當前目錄找,但是什麼是當前目錄呢?這個不同情況是不同的,它會先把當前運行文件的目錄當成當前目錄,如果找不到,再把當前腳本所在的目錄當成當前目錄,從當前腳本所在目錄開始找,如果還找不到就報錯,引入文件不存在。

    所以如果意圖清楚,最好是使用最後兩種方式引入文件,這樣能減少不必要的麻煩,另外使用絕對路徑比使用相對路徑加載文件性能更高,這樣能避免系統去解析相對路徑而耗費一些時間。

    當前運行文件當前腳本,請注意仔細理解它們的差别,前者作為入口運行,後者則被腳本通過引用的方式調用。魔術常亮__FILE____DIR__就是後者的文件名(包含完整的絕對路徑)和目錄。


    關于路徑的其他引申

    PHP腳本這種文件相互引用包含的關系可和網頁中靜态文件css中的`../`路徑不同,css中的路徑之和所在css文件url路徑相關,和網頁沒有半毛錢關系,網頁隻是加載它而已,但是如果css中使用`/`那情況就不同了,一般`/`為根域名,再說一遍,靜态文件中除了`/`其他的路徑都是相對于當前靜态文件的,和網頁地址沒有關系。網頁中的`./`和`/`則是相對于當前url路徑(對于pathinfo也沒有關系,不會受影響,認不出是假目錄的)和根域。

    還可以通過注冊自動加載方法來實現自動加載,框架大部分都實現了自動加載,不然手動寫包含語句不利于維護,太麻煩。

    ,

    更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

    查看全部

    相关科技资讯推荐

    热门科技资讯推荐

    网友关注

    Copyright 2023-2024 - www.tftnews.com All Rights Reserved