通過執行個體深入剖析require和include的用法_PHP教程

來源:互聯網
上載者:User

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

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

con_db.php

$dbh = mysql_connect(localhost,,);
mysql_select_db(admreqs);
?>

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

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

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

但如果這樣用

filename.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包括它們就可以了。

http://www.bkjia.com/PHPjc/508257.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508257.htmlTechArticle在php中,include和require的作用比較容易混淆。下面我以一個經典例子來深刻說明它們的區別。 當我們經常訪問一個資料庫時,可以把連庫語...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.