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
- require 和 include 區別小記UI
- include與require、require_once與include_once的區別UI
- require 和 import 的區別?UIImport
- import和require的區別ImportUI
- require和import引用的區別UIImport
- epic和steam的區別介紹及優劣對比
- Java中抽象類和介面的介紹及二者間的區別Java抽象
- 談談import和require的區別ImportUI
- #include <> ““區別
- PHP 中的 -> 和 :: 的區別PHP
- FTP和TFTP的區別與介紹FTP
- require和import有啥區別?UIImport
- ssr、ss和vpn介紹和區別
- php中TCP和UDP的區別PHPTCPUDP
- NTFS和FAT32區別介紹
- jar包和war包的介紹與區別JAR
- 正規表示式中test、exec、match的區別介紹及括號的用法
- gpu是什麼 gpu和cpu的區別介紹GPU
- epic和steam的區別介紹及優劣對比 epic與steam互通嗎
- 簡單介紹Tomcat中catalina.out 和 catalina.log的區別和用途Tomcat
- npm與cnpm的區別介紹NPM
- php中aes加密和rsa加密的區別PHP加密
- PHP 中 bind 的用法 self 和 static 的區別PHP
- jar包、war包和ear包的介紹與區別JAR
- 介紹java -cp & java -jar的區別JavaJAR
- 蜂窩基站和訊號放大器的區別介紹
- 雲伺服器和物理伺服器的區別介紹伺服器
- cpu散片和盒裝的區別是什麼 amdintelcpu散片和盒裝區別介紹Intel
- C語言include關鍵字和引用.h .c的區別C語言
- 不能這樣像別人介紹 PHPPHP
- php介紹PHP
- require()、import、import()有哪些區別?UIImport
- MySQL儲存引擎簡介及MyISAM和InnoDB的區別MySql儲存引擎
- php中的執行緒、程式和併發區別PHP執行緒
- 《細說PHP》中strlen和mb_strlen的區別PHP
- php中const和define有什麼區別PHP
- Linux中&&和&,|和||用法及區別詳解!Linux