PHP 中 include 和 require 的概要及區別介紹
導讀 | require() 語句的效能與 include() 相類似,都是包括並執行指定檔案。不同之處在於:對 include() 語句來說,在執行檔案時每次都要進行讀取和評估;而對於 require() 來說,檔案只處理一次(實際上,檔案內容替換 require() 語句)。 |
require() 語句的效能與 include() 相類似,都是包括並執行指定檔案。不同之處在於:對 include() 語句來說,在執行檔案時每次都要進行讀取和評估;而對於 require() 來說,檔案只處理一次(實際上,檔案內容替換 require() 語句)。這就意味著如果可能執行多次的程式碼,則使用 require() 效率比較高。另外一方面,如果每次執行程式碼時是讀取不同的檔案,或者有透過一組檔案迭代的迴圈,就使用 include() 語句。
require() 的使用方法如:
require("myfile.php")
這個語句通常放在 PHP 程式的最前面。PHP 程式在執行前,就會先讀入 require() 語句所引入的檔案,使它變成 PHP 檔案的一部分。
include() 使用方法和 require 一樣如:
include("myfile.php")
這個語句一般是放在流程控制的處理區段中。
PHP 指令碼檔案在讀到 include() 語句時,才將它包含的檔案讀取進來。這種方式,可以把程式執行時的流程簡單化。
- incluce 在用到時載入
- require 在一開始就載入
- _once 字尾表示已載入的不載入
PHP 系統在載入PHP程式時有一個偽編譯過程,可使程式執行速度加快。但 incluce 的文件仍為解釋執行。include 的檔案中出錯了,主程式繼續往下執行,require 的檔案出錯了,主程式也停了,所以包含的檔案出錯對系統影響不大的話(如介面檔案)就用 include,否則用 require。
require() 和 include() 語句是語言結構,不是真正的函式,可以像 php 中其他的語言結構一樣,例如 echo() 可以使用 echo("ab") 形式,也可以使用 echo "abc" 形式輸出字串 abc。require() 和i nclude() 語句也可以不加圓括號而直接加引數。
include_once() 和 require_once() 語句也是在指令碼執行期間包括執行指定檔案。此行為和 include() 語句及 require() 類似,使用方法也一樣。唯一區別是如果該檔案中的程式碼已經被包括了,則不會再次包括。這兩個語句應該用於在指令碼執行期間,同一個檔案有可能被包括超過一次的情況下,確保它只被包括一次,以避免函式重定義以及變數重新賦值等問題。
include 引入檔案的時候,如果碰到錯誤,會給出提示,並繼續執行下邊的程式碼。
require 引入檔案的時候,如果碰到錯誤,會給出提示,並停止執行下邊的程式碼。
用例子來說話,寫兩個 php 檔案,名字為 test-include.php 和 test-require.php,注意相同的目錄中,不要存在一個名字是 test-nothing.php 的檔案。
test-include.php
test-require.php
瀏覽 ,因為沒有找到 test-nothing.php 檔案,我們看到了報錯資訊,同時,報錯資訊的下邊顯示了 abc,你看到的可能是類似下邊的情況:
Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2 Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2 abc
瀏覽 ,因為沒有找到 test-nothing.php 檔案,我們看到了報錯資訊,但是,報錯資訊的下邊沒 有顯示abc,你看到的可能是類似下邊的情況:
Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2 Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2
include() 執行時需要引用的檔案每次都要進行讀取和評估,require() 執行時需要引用的檔案只處理一次(實際上執行時需要引用的檔案內容替換了 require() 語句)可以看出若有包含這些指令之一的程式碼和可能執行多次的程式碼,則使用 require() 效率比較高,若每次執行程式碼時相讀取不同的檔案或者有透過一組檔案疊代的迴圈,就使用 include(),可以給想要包括的檔名設定變數,當引數為 include() 時使用這個變數。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2770760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php中 include,require,include_once,require_once 的區別PHPUI
- [php]require&require_once&include&include_once的用法與區別PHPUI
- require 和 include 區別小記UI
- include與require、require_once與include_once的區別UI
- php--include 、requirePHPUI
- PHP中require和include路徑問題總結PHPUI
- php中explode與split的區別介紹PHP
- latex中\input和\include的區別
- jsp中include指令和include動作的區別JS
- require和require_once的區別UI
- import和require的區別ImportUI
- require 和 import 的區別?UIImport
- require和import引用的區別UIImport
- #include與#include區別
- epic和steam的區別介紹及優劣對比
- Java中抽象類和介面的介紹及二者間的區別Java抽象
- PHP中的型別約束介紹PHP型別
- include 後面加和" "的區別
- 談談import和require的區別ImportUI
- PHP 中的 -> 和 :: 的區別PHP
- #include <> ““區別
- FTP和TFTP的區別與介紹FTP
- require和import有啥區別?UIImport
- ssr、ss和vpn介紹和區別
- PHP學習:PHP超全域性變數(Superglobal)$GLOBALS的介紹以及和global的區別PHP變數
- URL和URI的區別簡單介紹
- 簡單介紹 "&&" 與 “&” 和 ”|“ 與 ”||“ 的區別
- php中TCP和UDP的區別PHPTCPUDP
- ***PHP中empty()和isset()的區別PHP
- require.js用法介紹UIJS
- malloc和new的區別,new和operator new的區別,分配器介紹
- jar包和war包的介紹與區別JAR
- PHP中session和cookie的區別薦PHPSessionCookie
- 正規表示式中test、exec、match的區別介紹及括號的用法
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- PHP中MySQL、MySQLi和PDO的用法和區別PHPMySql
- require.js的作用簡單介紹UIJS
- gpu是什麼 gpu和cpu的區別介紹GPU