php之include,require文件包含

来源:互联网 发布:软件平台合同 编辑:程序博客网 时间:2024/04/29 15:47

在php中,我们可以使用include和require两类函数来包含一个文件,include和require在功能上完全相同,只是在出现错误时的处理方式不同,如果包含时出现错误,如被包含的文件不存在,include会产生一个警告,程序继续往下执行,而require则会产生一个严重的错误,终止程序的执行。由于include和require是一种语言结构,而不是函数,在使用时不需要括号,这样使用既可:include 'inc.php';

当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中应被当作 PHP 代码执行的任何代码都必须被包括在有效的php起始和结束标记之中。

例如,有如下被包含文件:

inc.php

<hr><?phpecho 'hello,i am included!';?><hr>


这个文件中包含上面的inc.php文件

test.php

<?phpecho 'before include';include 'inc.php';echo 'after include';?>



则以上代码的效果相当于这样:

<?phpecho 'before include';?><hr><?phpecho 'hello,i am included!';?><hr><?phpecho 'after include';?>

当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。

如果使用相对路径,php会在include_path指定的相对目录中去寻找被包含的文件,相关函数为get/set_include_path(),寻找包含文件的顺序先是在当前工作目录的相对的 include_path 下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。例如 include_path 是.,当前工作目录是 /www/,脚本中要 include 一个 include/a.php 并且在该文件中有一句 include "b.php",则寻找 b.php 的顺序先是 /www/,然后是 /www/include/。如果文件名以./ 或者 ../ 开始,则只在当前工作目录相对的 include_path 下寻找。


include和require是有返回值的,包含成功时返回1,失败时返回false,如果在被包含的文件中使用return来返回一个值,则include的返回值也为该值,而不是默认的1.

被包含的文件中往往有函数的定义,如果这样的文件被包含两次,则会出现函数重定义的错误,解决的办法是使用include_once或者require_once替代,这两个函数会检查文件是否已经被包含,如果已经被包含过,则不会再去包含它,并返回true。


对于以下代码:

if($condition)

{

include 'inc.php';

}

只有当$condition条件为真时,php才会去包含并解析执行inc.php,条件为假时,php并不会去包含inc.php.


0 0
原创粉丝点击