PHP require和include的區別不同

2021-08-23 12:45:58 字數 962 閱讀 1446

在php中,include和require的作用比較容易混淆。下面我以乙個經典例子來深刻說明它們的區別。

當我們經常訪問乙個資料庫時,可以把連庫語句寫成乙個檔案

con_db.php

<?php

$dbh = mysql_connect('localhost','','');

mysql_select_db('admreqs');

?>

在實際應用時,我們可以在程式中呼叫這個檔案。

如require("con_db.php")或include("con_db.php)

這時,兩個函式的效果是差不多的。

但如果這樣用

filename.php

<?php

require("con_db.php")

function myfun($par1,$par2)

.....

myfun($par1,$par2);

.....

myfun($p1,$p2);

?>

檔案到myfun處將不能繼續執行,因為函式裡無法得到外面的變數(include也是一樣的)。除非把$dbh作為乙個變數傳給函式。這又增加了呼叫函式的複雜度。

我們可以通過把require或include放在函式裡面來解決這個問題。

如果用include,檔案的第乙個函式呼叫處將順利通過,但第二個呼叫將無法執行,原因是不能在沒有關閉資料庫時在開啟一次,也就是說,con_db.php執行了兩次。將include換成require,一切都正常。

也就是說,require類似於一次預掃瞄,在程式執行時,無論在函式裡或是函式外,都將先把require的檔案執行,且只執行一次。而include則是每執行一次就呼叫一次檔案,即這次執行後,下次再執行執行到這裡,仍將再執行一次。

因此,如果在乙個迴圈中,某些語句你只想執行一次,那你用require包括它們就可以了。

PHP require和include的區別

require乙個檔案存在錯誤的話,那麼程式就會中斷執行了,並顯示致命錯誤 include乙個檔案存在錯誤的話,那麼程式不會中端,而是繼續執行,並顯示乙個警告錯誤。以下為補充 1.include有返回值,而require沒有。2.include 包括並執行指定檔案 在處理失敗時include 產生乙...

JSP中動態include和靜態include區別

靜態 include 用include 偽碼實現 不會檢查所含檔案的變化 適用於包含靜態頁面 include file included.htm 先將檔案的 被原封不動地加入到了主頁面從而合成乙個檔案,然後再進行翻譯 動態 include 用jsp include 動作實現 它總是會檢查所含檔案中的...

php require語句的使用方法詳解

require 和 include 幾乎完全一樣,除了處理失敗的方式不同之外。require 在出錯時產生 e compile error 級別的錯誤。換句話說將導致指令碼中止而 include 只產生警告 e warning 指令碼會繼續執行。語法 void require string file...