• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

【PHP】界别include(),require(),include_once(),require_once()

php 搞代码 4年前 (2022-01-24) 16次浏览 已收录 0个评论

【PHP】区分include(),require(),include_once(),require_once()

  作者:zhanhailiang 日期:2013-03-19

1.include()与require()的区别(同理可区分include_once()与require_once())

include(),require()语句包含并6来源gaodaimacom搞#^代%!码网搞gaodaima代码运行指定文件。 这两种结构除了在如何处理失败之外完全一样。

include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用 require()。include()就不是这样,脚本会继续运行

例1:include()产生一个Warning而require()则导致一个Fatal error。

<span>zhanhailiang<span class="sy0">@</span>linux-06bq:~<span class="sy0">></span> php <span class="re5">-r</span> <span class="st0">"include('a.php');"</span> Warning: include<span class="br0">(</span>a.php<span class="br0">)</span>: failed to open stream: No such <span class="kw2">file</span> or directory <span class="kw1">in</span> Command line code on line <span class="nu0">1</span> </span><span style="color:#ff0000"><strong>Warning</strong></span><span style="color:#333333">: include</span><span class="br0">(</span><span class="br0">)</span><span style="color:#333333">: Failed opening </span><span class="st_h">'a.php'</span><span style="color:#333333"> </span><span class="kw1">for</span><span style="color:#333333"> inclusion </span><span class="br0">(</span><span class="re2">include_path</span><span style="color:#333333">=</span><span class="st_h">'.:/usr/local/services/phplib/src:/usr/local/services/phplib/inc:/usr/local/services/php/lib/php'</span><span class="br0">)</span><span style="color:#333333"> </span><span class="kw1">in</span><span style="color:#333333"> Command line code on line </span><span class="nu0">1</span><span style="color:#333333">zhanhailiang</span><span class="sy0">@</span><span style="color:#333333">linux-06bq:~</span><span class="sy0">></span><span style="color:#333333"> php </span><span class="re5">-r</span><span style="color:#333333"> </span><span class="st0">"require('a.php');"</span><span style="color:#333333"> Warning: require</span><span class="br0">(</span><span style="color:#333333">a.php</span><span class="br0">)</span><span style="color:#333333">: failed to open stream: No such </span><span class="kw2">file</span><span style="color:#333333"> or directory </span><span class="kw1">in</span><span style="color:#333333"> Command line code on line </span><span class="nu0">1</span><span style="color:#333333"> </span><strong><span style="color:#ff0000">Fatal error</span></strong><span style="color:#333333">: require</span><span class="br0">(</span><span class="br0">)</span><span style="color:#333333">: Failed opening required </span><span class="st_h">'a.php'</span><span style="color:#333333"> </span><span class="br0">(</span><span class="re2">include_path</span><span style="color:#333333">=</span><span class="st_h">'.:/usr/local/services/phplib/src:/usr/local/services/phplib/inc:/usr/local/services/php/lib/php'</span><span class="br0">)</span><span style="color:#333333"> </span><span class="kw1">in</span><span style="color:#333333"> Command line code on line </span><span class="nu0">1</span>

2.include()与include_once()的区别(同理可区别require()与require_once())

include_once()语句在脚本执行期间包含并运行指定文件。此行为和include()语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
include_once()应该用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题
返回值和include()相同。如果文件已被包含,本函数返回TRUE。

例1:include()会多次包含指定文件,而include_once()不会。

zhanhailiang<span class="sy0">@</span>linux-06bq:~<span class="sy0">></span> <span class="kw2">cat</span> a.php<span class="sy0"><</span>?php<span class="kw3">echo</span> <span class="st_h">'1'</span>.PHP_EOL;zhanhailiang<span class="sy0">@</span>linux-06bq:~<span class="sy0">></span> php <span class="re5">-r</span> <span class="st0">"include('a.php');include('a.php');"</span><span class="nu0">1</span><span class="nu0">1</span>zhanhailiang<span class="sy0">@</span>linux-06bq:~<span class="sy0">></span> php <span class="re5">-r</span> <span class="st0">"include_once('a.php');include_once('a.php');"</span><span class="nu0">1</span>

例2:include_once()避免函数重定义。

<span style="color:#333333">zhanhailiang</span><span class="sy0">@</span><span style="color:#333333">linux-06bq:~</span><span class="sy0">></span><span style="color:#333333"> </span><span class="kw2">cat</span><span style="color:#333333"> a.php </span><span class="sy0"><</span><span style="color:#333333">?php</span><span class="kw3">echo</span><span style="color:#333333"> </span><span class="st_h">'1'</span><span style="color:#333333">.PHP_EOL; </span><span class="kw1">function</span><span style="color:#333333"> </span><span class="kw3">test</span><span class="br0">(</span><span class="br0">)</span><span style="color:#333333"> </span><span class="br0">{</span><span class="br0">}</span><span style="color:#333333">zhanhailiang</span><span class="sy0">@</span><span style="color:#333333">linux-06bq:~</span><span class="sy0">></span><span style="color:#333333"> php </span><span class="re5">-r</span><span style="color:#333333"> </span><span class="st0">"include('a.php');include('a.php');"</span><span style="color:#333333"></span><span class="nu0">1</span><span style="color:#333333"> </span><strong><span style="color:#ff0000">Fatal error</span></strong><span style="color:#333333">: Cannot redeclare </span><span class="kw3">test</span><span class="br0">(</span><span class="br0">)</span><span style="color:#333333"> </span><span class="br0">(</span><span style="color:#333333">previously declared </span><span class="kw1">in</span><span style="color:#333333"> </span><span class="sy0">/</span><span style="color:#333333">home</span><span class="sy0">/</span><span style="color:#333333">zhanhailiang</span><span class="sy0">/</span><span style="color:#333333">a.php:</span><span class="nu0">4</span><span class="br0">)</span><span style="color:#333333"> </span><span class="kw1">in</span><span style="color:#333333"> </span><span class="sy0">/</span><span style="color:#333333">home</span><span class="sy0">/</span><span style="color:#333333">zhanhailiang</span><span class="sy0">/</span><span style="color:#333333">a.php on line </span><span class="nu0">4</span><span style="color:#333333">zhanhailiang</span><span class="sy0">@</span><span style="color:#333333">linux-06bq:~</span><span class="sy0">></span><span style="color:#333333"> php </span><span class="re5">-r</span><span style="color:#333333"> </span><span class="st0">"include_once('a.php');include_once('a.php');"</span><span style="color:#333333"></span><span class="nu0">1</span>

3.扩展阅读

  • include

  • require

  • include_once

  • require_once

  • 从php核心代码看require和include的区别


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【PHP】界别include(),require(),include_once(),require_once()
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址