您的位置:首页 > 产品设计 > UI/UE

php之include,require文件包含

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

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

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

inc.php

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


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

test.php

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


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

<?php
echo 'before include';
?>
<hr> <?php echo 'hello,i am included!'; ?> <hr>

<?php
echo '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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐