phprequire
『壹』 php中require和require_once的區別說明
include()
和require()
:語句包括並運行指定文件。
include()
產生一個警告而
require()
則導致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用
require()。include()
就不是這樣,腳本會繼續運行。
require_once()
語句在腳本執行期間包括並運行指定文件。此行為和
require()
語句類似,唯一區別是如果該文件中的代碼已經被包括了,則不會再次包括。
include_once()
語句在腳本執行期間包括並運行指定文件。此行為和
include()
語句類似,唯一區別是如果該文件中的代碼已經被包括了,則不會再次包括。如同此語句名字暗示的那樣,只會包括一次。
1.include()
函數會將指定的檔案讀入並且執行裡面的程序。
例如:include('/home/me/myfile');
被導入的檔案中的程序代碼都會被執行,而且這些程序在執行的時候會擁有和源文件中呼叫到
include()
函數的位置相同的變數范圍(variable
scope)。你可以導入同一個伺服器中的靜態檔案,甚至可以通過合並使用
include()
與
fopen()
函數來導入其它伺服器上面的檔案。
2.include_once()函數的作用和
include()
是幾乎相同的
唯一的差別在於
include_once()
函數會先檢查要導入的檔案是不是已經在該程序中的其它地方被導入過了,如果有的話就不會再次重復導入該檔案(這項功能有時候是很重要的,比方說要導入的檔案裡面宣告了一些你自行定義好的函數,那麼如果在同一個程序重復導入這個檔案,在第二次導入的時候便會發生錯誤訊息,因為
PHP
不允許相同名稱的函數被重復宣告第二次)。
3.require()函數會將目標檔案的內容讀入,並且把自己本身代換成這些讀入的內容。
這個讀入並且代換的動作是在
PHP
引擎編譯你的程序代碼的時候發生的,而不是發生在
PHP
引擎開始執行編譯好的程序代碼的時候(PHP
3.0
引擎的工作方式是編譯一行執行一行,但是到了
PHP
4.0
就有所改變了,PHP
4.0
是先把整個程序代碼全部編譯完成後,再將這些編譯好的程序代碼一次執行完畢,在編譯的過程中不會執行任何程序代碼)。require()
通常來導入靜態的內容,而
include()
則適合用來導入動態的程序代碼。
4.如同
include_once()函數,require_once()
函數會先檢查目標檔案的內容是不是在之前就已經導入過了,如果是的話,便不會再次重復導入同樣的內容。
『貳』 PHP怎麼用require引入文件
這是一個經典的引用路徑問題。
被引用的文件是html文件,原文件的圖片及css路徑不能直接被識別;
因此需要原PHP文件中將路徑設置為變數:
如:$css_dir="/css";
$img_dir="/images";
然後將變數嵌入到html文件中去:
<?php echo $css_dir; ?>/index.css
<?php echo $img_dir;?>/img1
『叄』 PHP 的 require函數
require()是php的內置函數,作用是引入或者包含外部php文件。
工作原理:當本身php文件被執行時,則外部文件的內容就將被包含進該自身php文件中;當包含的外部文件發生錯誤時,系統將拋出錯誤提示,並且停止php文件的執行。
注意:使用require時,一個文件存在錯誤的話,那麼程序就會中斷執行了,並顯示致命錯誤。
比如cl.php,ts.php兩個文件,ts.php要用到cl.php文件中的函數,需要在ts.php中引入或者包含cl.php即可.示例如下:
cl.php
<?php
functionshow(){
echo"cl.php文件中的show方法被調用了!";
}
?>
ts.php
<?php
require'cl.php';
show();
?>
運行結果:
『肆』 php中require和include的區別
1、概要
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()和include()語句也可以不加圓括弧而直接加參數。
include_once()和require_once()語句也是在腳本執行期間包括運行指定文件。此行為和include()語句及require()類似,使用方法也一樣。唯一區別是如果該文件中的代碼已經被包括了,則不會再次包括。這兩個語句應該用於在腳本執行期間,同一個文件有可能被包括超過一次的情況下,確保它只被包括一次,以避免函數重定義以及變數重新賦值等問題。
2、詳情
2.1 報錯
include引入文件的時候,如果碰到錯誤,會給出提示,並繼續運行下邊的代碼。
require引入文件的時候,如果碰到錯誤,會給出提示,並停止運行下邊的代碼。
用例子來說話,寫兩個php文件,名字為test-include.php和test-require.php,注意相同的目錄中,不要存在一個名字是test-nothing.php的文件。
test-include.php
<?php
include 'test-nothing.php';
echo 'abc';
?>
test-require.php
<?php
require 'test-nothing.php';
echo 'abc';
?>
瀏覽http://localhost/test-include.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
瀏覽http://localhost/test-require.php,因為沒有找到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
2.2 條件引用
include()與require()的功能相同,用法上卻有一些不同,include()是有條件包含函數,而require()則是無條件包含函數。
例如下面例子,如果變數$somg為真,則將包含文件somefile.php:
if($some){
include 'somefile.php';
}
但無論$some取何值,下面的代碼將把文件somefile.php包含進文件里:
if($something){
require 'somefile.php';
}
下面的例子充分說明了這兩個函數之間的不同:
$i = 1;
while ($i < 3) {
require "somefile.$i.php";
$i++;
}
可以從以上這段代碼中看出,每一次循環的時候,程序都將把同一個文件包含進去,很顯然這不是我們想要的,可以看出這段代碼希望在每次循環時,將不同的文件包含進來,如果要完成這個功能,只能使用函數include():
$i = 1;
while ($i < 3) {
include "somefile.$i.php";
$i++;
}
2.3 文件引用方式
include()執行時需要引用的文件每次都要進行讀取和評估,require()執行時需要引用的文件只處理一次(實際上執行時需要引用的文件內容替換了require()語句)可以看出若有包含這些指令之一的代碼和可能執行多次的代碼,則使用require()效率比較高,若每次執行代碼時相讀取不同的文件或者有通過一組文件疊代的循環,就使用include(),可以給想要包括的文件名設置變數,當參數為 include()時使用這個變數。
『伍』 PHP include和require區別
require函數是指包含進來的內容被當成當前文件的一個組成部分,所以當包含進來的文件有語法錯誤或者文件不存在的時候,那當前文件的PHP腳本都不再執行。
include()函數相當於指定這個文件的路徑,當被包含的文件有錯時,不會影響到本身的程序運行。
以上不為手打 出處為 http://www.jb51.net/article/15681.htm
我個人實驗了下 覺得兩者應該只是對錯誤處理方式不同。
『陸』 PHP中的require引入一個文件,很多都說是在程序執行之前就先讀入了要引入的文件
終於遇到個和我又同樣疑惑的人了。是滴,我也會在看了手冊後發現「require和include除了處理失敗方式不同,其他都完全一樣」,但查閱其他資料後發現,貌似還有一個載入時機的區別。困擾好久,一直不得解。不過我嘗試這么去理解的,偏差地方,還請權威大佬糾正。這兩個函數(准確說是語句),最終的作用是將引入的文件復制粘貼到當前引入行。程序要想正常運行,肯定是所有的需要都准備好,否則肯定會出錯!(注意出錯一詞),我認為正式這里的差異化才驗證了我的理解。require確實實在zend預編譯時,將其引入的文件內容復制到當前,然後執行預編譯和執行。而include在預編譯的被編譯成opcode了,當執行倒這一指令時,會像函數調用一樣進入一個棧的環境,在這里完成對引入文件的內容的復制和編譯,進而執行(這里就是我的理解)。如果這時候出錯了,直接跳出棧,並不影響主流程的進展,這也就是為什麼include出錯只是warning,而由於require是在主流程裡面,所以一旦出錯就是致命的(這里的結果呼應了,我的理解)。so,不當之處,請大佬指點。(純手打。。。。)
『柒』 php引用錯誤,require
你的路徑問題。。根目錄和admin目錄引用肯定不一樣的,按樓上的做~`
『捌』 php中require什麼意思
require
英 [rɪ'kwaɪə(r)]
美 [rɪ'kwaɪər]
釋義
v. 要求;需要;
命令;規定
『玖』 [php]require 和include
簡單說一下
require和include,前者當包含的文件不存在時,程序停止執行,後者當包含的文件不存在時只是報一個警告,程序繼續執行。
require和require_once,這兩個區別為,前者遇到即包含文件,後者會判斷是否已經包含過了,如果包含過了,則不再包含文件。一可以節省資源,二可以避免重復定義的錯誤。
例如:
require 'xx.php';
echo 'xxxxx';
如果xx.php文件不存在,echo 'xxxxx';這句是不執行的。。在require時就停止了
include 'xx.php';
echo 'xxxxx';
如果xx.php文件不存在,echo 'xxxxx';這句是可以繼續執行的。。
require 'xx.php';
require 'xx.php';
這種情況下xx.php被包含兩次。
require 'xx.php';
require_once 'xx.php';
這種情況下,第二次包含時,是不會進行包含的。。
include_once和require_once會有性能上的下降,因為他需要判斷之前是否包含過。一般情況下,也不太需要去考慮,除非這已經影響到你程序的性能了。
『拾』 php裡面require和include的區別
require 的使用方法如 require("MyRequireFile.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("MyIncludeFile.php"); 。這個函數一般是放在流程式控制制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
他們兩個的用途是完全一樣的,不一定非得哪個放在最前面哪個放在中間。他們最根本的區別在於錯誤處理的方式不一樣。
require一個文件存在錯誤的話,那麼程序就會中斷執行了,並顯示致命錯誤
include一個文件存在錯誤的話,那麼程序不會中端,而是繼續執行,並顯示一個警告錯誤。
1. include有返回值,而require沒有。
2. include()包括並運行指定文件 在處理失敗時include() 產生一個警告,被導入的程序代碼都會被執行,而且這些程序在執行的時候會擁有和源文件中呼叫到include()語句的位置相同的變數范圍。你可以導入同一個伺服器中的靜態頁面。
3. require()會將目標文件的內容讀入,並且把自己本身代換成這些讀入的內容 在處理失敗時require() 則導致一個致命錯。
這個讀入並且代換的動作是在PHP引擎編譯你的程序代碼的時候發生的,而不是發生在PHP引擎開始執行編譯好的程序代碼的時候(PHP 3.0引擎的工作方式是編譯一行執行一行,但是到了PHP 4.0以後就有所改變了,PHP 4.0是先把整個程序代碼全部編譯完成後,再將這些編譯好的程序代碼一次執行完畢,在編譯的過程中不會執行任何程序代碼)。require()通常來導入靜態的內容,而include()則適合用導入動態的程序代碼。
4. require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執行require。
5. require通常放在PHP程序的最前面,PHP程序在執行前,就會先讀入require所指定引入的文件,使它變成PHP程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
6. include一般是放在流程式控制制的處理部分中PHP程序網頁在讀到include的文件時,才將它讀進來。這種方式可以把程序執行時的流程簡單化。