<p><strong>php 文件引用</strong></p><p>引用文件是将另一个源文件的全部内容包含到当前源文件汇中进行使用,引用外部文件可以减少代码的重复编写。PHP提供了include语句、require语句、include_once语句及require_once语句实现引用文件。</p><p>PHP中有四个加载文件的语句:include、require、include_once、require_once。</p><p><strong><span >基本语法</span></strong></p><p>require:require函数一般放在PHP脚本的最前面,PHP执行前就会先读入require指定引入的文件,包含并尝试执行引入的脚本文件。require的工作方式是提高PHP的执行效率,当它在同一个网页中解释过一次后,第二次便不会解释。但同样的,正因为它不会重复解释引入文件,所以当PHP中使用循环或条件语句来引入文件时,需要用到include。</p><p>include:可以放在PHP脚本的任意位置,一般放在流程控制的处理部分中。当PHP脚本执行到include指定引入的文件时,才将它包含并尝试执行。这种方式可以把程序执行时的流程进行简单化。当第二次遇到相同文件时,PHP还是会重新解释一次,include相对于require的执行效率下降很多,同时在引入文件中包含用户自定义函数时,PHP在解释过程中会发生函数重复定义问题。</p><p>require_once / include_once:分别与require / include作用相同,不同的是他们在执行到时会先检查目标内容是不是在之前已经导入过,如果导入过了,那么便不会再次重复引入其同样的内容。</p><p ><span ><span >应用include语句引用文件</span></span></p><p >注:使用include应用外部文件时,只有代码执行到include语句时,外部文件才会被引入并读取,当所引用的外部文件发生错误时,系统只给出一个警告,而整个php文件则继续向下执行。</p><table border="0" class="syntaxhighlighter php"><tbody><tr class="firstRow"><td class="gutter"><p class="line number1 index0 alt2">1</p><p class="line number2 index1 alt1">2</p><p class="line number3 index2 alt2">3</p><p class="line number4 index3 alt1">4</p><p class="line number5 index4 alt2">5</p></td><td class="code"><p class="line number1 index0 alt2"><code class="php plain"><?</code></p><p class="line number2 index1 alt1"><code class="php keyword">include</code><code class="php plain">(</code><code class="php string">"top.php"</code><code class="php plain">);</code></p><p class="line number3 index2 alt2"><code class="php keyword">include</code><code class="php plain">(</code><code class="php string">"main.php"</code><code class="php plain">);</code></p><p class="line number4 index3 alt1"><code class="php keyword">include</code><code class="php plain">(</code><code class="php string">"bottom.php"</code><code class="php plain">);</code></p><p class="line number5 index4 alt2"><code class="php plain">?></code></p></td></tr></tbody></table><p ><span ><span >应用require语句引用文件</span></span></p><p >在php文件被执行之前,php解析器会用被引用的文件的全部内容替换require语句,然后与require语句之外的其他语句组成新的php文件,最后再按新的php文件执行程序代码。</p><p >注:因为require语句相当于将另一个源文件的内容完全复制到文件中,所以一般将其放在源文件的起始位置,用于引用需要使用的公共函数文件和公共类文件等。</p><p ><br/></p><p ><span ><span >include语句和require语句的区别</span></span></p><p >使用require语句来调用文件时,如果调用的文件没找到,require语句会输出错误信息,并且立即终止脚本处理。而include语句在没有找到文件时则会输出警告,不会终止脚本的处理。</p><p >使用require语句调用文件时,只要程序一执行,就会立刻调用外部文件;而通过include语句调用外部文件时,只有程序执行到该语句时,才会调用外部文件。</p><p ><br/></p><p ><span ><span >应用include_once语句引用文件</span></span></p><p >应用include_once语句会在导入文件前先检测该文件是否在该页面的其他部分被应用过,如果有,则不会重复引用该文件,程序只能引用一次。</p><p >例如:要导入的文件中存在一些自定义函数,那么如果在同一个程序中重复导入这个文件,在第二次导入时便会发生错误,因为PHP不允许相同名称的函数被重复声明</p><p ><br/></p><p ><span ><span >应用require_once语句引用文件</span></span></p><p >require_once语句时require语句的延伸,它的功能与require语句基本类似,不同的是,在应用require_once语句时,会先检查要引用的文件是不是已经在该程序中的其他地方被引用过,如果有,则不会在重复调用该文件。</p><p >例如:同时应用require_once语句在同一个页面中引用了两个相同的文件,那么在输出时,只有第一个文件被执行,第二次引用的文件则不会被执行。</p><p ><br/></p><p ><span ><span >include_once和require_once语句的使用区别</span></span></p><p >include_once语句在脚本执行期间调用外部文件发生错误时,产生一个警告,而require_once语句则导致一个致命错误。</p><p >用途都是确保一个被包含文件只能被包含一次,使用这两个语句可以防止意外的多次包含相同的函数库,从而导致函数的重复定义并产生错误。</p>