php之include,require文件包含

在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.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值