设为首页 收藏本站
查看: 646|回复: 0

[经验分享] PHP理解之二:include,include_once,require,require_once之间的区别【转】

[复制链接]

尚未签到

发表于 2017-4-14 08:25:35 | 显示全部楼层 |阅读模式
  转自:http://registerboy.pixnet.net/blog/post/2426163
  require()is identical to include()except upon failure it will produce a fatal E_ERRORlevel error. In other words, it will halt the script whereas include()only emits a warning (E_WARNING) which allows the script to continue
  
這幾個的區別呢 經常會聽到有人討論,連一些PHPER面試都會出這個題目,我淺顯的說一下我的意見

先看手冊怎麼說的:
  require&include
include()語句包含並運行指定文件。以下文檔也適用於require()。這兩種結構除了在如何處理失敗之外完全一樣。include()產生一個警告而require()則導致一個致命錯誤。換句話說,如果想在遇到丟失文件時停止處理頁面就用require()。include()就不是這樣,腳本會繼續運行。同時也要確認設置了合適的include_path。注意在 PHP 4.3.5 之前,包含文件中的語法錯誤不會導致程序停止,但從此版本之後會。
  
include_once
include_once()語句在腳本執行期間包含並運行指定文件。此行為和include()語句類似,唯一區別是如果該文件中的代碼已經被包含了,則不會再次包含。如同此語句名字暗示的那樣,只會包含一次。include_once()應該用於在腳本執行期間同一個文件有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。
  
require_once
require_once()語句在腳本執行期間包含並運行指定文件。此行為和require()語句類似,唯一區別是如果該文件中的代碼已經被包含了,則不會再次包含。有關此語句怎樣工作參見require()的文檔。require_once()應該用於在腳本執行期間同一個文件有可能被包含超過一次的情況下,想確保它只被包含一次以避免函數重定義,變量重新賦值等問題。



個人使用經驗:

1.路徑問題。

特別是嵌套包含的時候,一定的注意包含文件的路徑。比如 A文件包含了B文件,B文件包含了C文件,A,B,C文件都不在同一個文件夾下,這個時候往往很容易出錯誤。
解決方案:定義一個基路徑sitebase

2.效率問題
include_once,require_once,與include,require比較,效率要低一點,因為他們至少得先判斷一下這個文件是否存在。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-364674-1-1.html 上篇帖子: php_字符串编码ASCII_GBK_UTF-8检测_中文字符串_求子串 下篇帖子: 在 Windows 上安裝 PHP 5.3 開發環境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表