![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 Eric16899 ![]()
![]() |
include("checkpwd.php"); require("../include/menu.php"); 程式中兩者都是整合進程式中, 請問include與require的差異?
本篇文章發表於2012-02-02 22:40
|
1樓 |
http://tino.loxa.edu.tw/php/kojiro/inre.html
本篇文章回覆於2012-02-03 01:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
不錯的參考
那顆爛蔥 ![]() ![]() |
多參考一個
http://www.wretch.cc/blog/persongood/13829179
本篇文章回覆於2012-02-03 01:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
我用白話點的說法好了
require就有點像是 call 。也就是先去運行這些程式。與目前運行的程式是分兩個程式在運行。 如A require B 則運行是 A -> B -> A..... 而include就像是IN。也就是將程式碼插入進來。運行程式動作可以說是在同一支程式。 如A include B 則運行是 A(B)=>A..... 不知道這樣是否有明白。 一般我個人,會將require放在開頭,如require('global.php') 或是 require('init.php') 而在程式中間有可能還需要引入的就會用include
本篇文章回覆於2012-02-03 12:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
不錯的參考
Solty ![]() |
require 先執行再插入
include 先執行再執行 其實這只是廣義上的解釋,實務中你會發現不全然是這樣,真正會發生影響的部份其實是在路徑起點的判斷 a.php main.php 那我們來看看官方的說法.... http://php.net/manual/en/function.require.php require() is identical to include() except upon failure it will also produce a fatal E_COMPILE_ERROR level error. In other words, it will halt the script whereas include() only emits a warning (E_WARNING) which allows the script to continue. See the include() documentation for how this works. 官方的解釋是,require與include是一樣的,差別在於,在找不到指定檔案時會產生一個E_COMPILE_ERROR級別的錯誤,造成程式強制中斷 實務中會碰到的問題是...路徑起點的差異 假設你的伺服器上的網站根目錄如下 main.php x.php include/a.php include/b.php require/a.php require/b.php 2個a.php的內容都一樣 2個b.php的內容也都一樣 main.php //現在假定主程式在根目錄 <?php include 'include/a.php'; require 'require/a.php'; ?> 現在你會發現輸出的路徑是不同的 require的路徑起點是該檔案所在的位置 include的路徑起點則是main.php所在的位置 當main.php的情況變成
本篇文章回覆於2012-02-03 12:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
Eric16899 ![]() |
謝謝大大們的解說,遠比我google找的資料(或許看得不夠多)
一般是說兩者若發生錯誤時 一個會停止 一個會繼續RUN後面的程式. 目前開發的系統 我會用到的是 把共通地方寫到另外的檔案: HTML 標題 HTM_Head.php 連資料庫的程式碼 DB_CON.php 共通的選單(menu) Menu_item.php HTML 結尾 HTM_Foot.php 然後再依不同Table所寫的程式include()進來, 那請問那些適合用 include() 那些用 require()? 或者使用 include_once() require_once()?
本篇文章回覆於2012-02-03 22:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
最有價值解答
浩瀚星空 ![]() ![]() |
_once 一般是看你插入的程式碼用意為何。
如你的程式全是用FUNCTION所構成的。那一般會都會_once。這樣也可以避免重覆宣告的錯誤。 但如果是如下的程式,如會一直重覆運行的程式。這可能不太好解釋。我用程式碼說明會比較快 A.php B.php 試將A.php第一跟第二行交替使用。你會發現輸出的$data不一樣 使用include的 會分別輸出 abc 但使用include_once則會只輸出 aaa 一般一個原則,想載入class或是function庫的程式,或是單純的初始宣告用的程式。大多會用once。因為那不是重覆運行計算的程式。 但如果有可能程式是屬於引入式計算的程式碼。那就等於你不能用once了。免得跑一次就不會再跑了。
本篇文章回覆於2012-02-04 09:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
Eric16899 ![]() |
Tank you!
本篇文章回覆於2012-02-08 15:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |