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
这个文件中包含上面的inc.php文件
test.php
则以上代码的效果相当于这样:
当一个文件被包含时,其中所包含的代码继承了 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.
当一个文件被包含时,语法解析器在目标文件的开头脱离 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.
相关文章推荐
- php------include和require都能把另外一个文件包含到当前文件中,区别是什么,include和include_once区别?
- php小知识点-文件包含(include include_once require require_once)
- php中include,require的文件包含问题,以及$_SERVER['PHP_SELF']和__FILE__的区别
- PHP包含文件函数include、include_once、require、require_once区别总结
- PHP包含文件函数include、include_once、require、require_once的使用
- PHP文件包含命令(include,require)及漏洞利用
- PHP包含文件函数include、include_once、require、require_once区别总结
- php中使用include(require)嵌套包含文件时的一些注意问题
- php学习笔记6--php中的文件包含 include,require,include_once,require_once
- 菜鸟教你学编程之PHP(7)包含文件 include与require
- php require和include包含文件
- [乐意黎原创] PHP文件包含语句 include、include_once、require、require_once的区别
- PHP文件包含语句 include、include_once、require、require_once
- PHP的包含(include,require)文件的路径问题
- PHP文件包含语句 include、include_once、require、require_once的区别
- PHP文件包含语句 include、include_once、require、require_once的区别
- PHP文件包含语句 include、include_once、require、require_once
- PHP包含文件函数include、include_once、require、require_once区别总结
- PHP包含文件(require/include/require_once/include_once/__autoload/spl_autoload_xxx)分析总结
- PHP包含文件函数include、include_once、require、require_once区别总结