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

include require include_on…

2016-03-04 09:50 357 查看
原文地址:include require include_once require_once 的问题作者:ppframeinclude
require
include_once
require_once
 
的区别
 
PHP 文档:

include()语句包含并运行指定文件。

以下文档也适用于include()。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而 require()
则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用
require()include()就不是这样,脚本会继续运行。同时也要确认设置了合适的
include_path。注意在 PHP
4.3.5
之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。

寻找包含文件的顺序先是在当前工作目录的相对的 include_path
下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。例如
include_path 是
.
,当前工作目录是
/www/
,脚本中要 include 一个
include/a.php
并且在该文件中有一句
include "b.php"
,则寻找
b.php
的顺序先是
/www/
,然后是
/www/include/
。如果文件名以
./
或者
../

开始,则只在当前工作目录相对的 include_path 下寻找。

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

 

如果你希望在包含语句出错的时候停止程序运行,那么:使用
require() 否则使用include()


 

对于什么时候使用 include 什么时候使用 include_once

 

1、如果你的包含文件中含有对函数、类的声明和定义,那么任何时候都使用include_once
或者 require_once 。否则在PHP5
里面将出现函数、类已定义的的致命错误。

 

2、如果你的包含文件中只有对变量的定义,比如配置文件之类。

那么无论使用include 还是 include_once 都没有关系,但是include
每次都会包含并执行。这将覆盖之前对变量的定
4000
义。include_once
只包含一次。

 

3、如果你的包含文件中只有对变量的定义,而你又是在局部域,比如函数,类中包含该配置文件,那么无论何时都使用
include 或者 require
。因为你在全局域对该文件的包含里面的变量定义是全局的,在该局部域没有作用范围。如果使用include_once
将不会包含该文件,导致对变量定义的引用无效。尤其在函数中需要用到某配置文件时,尤须注意!否则会出现莫名其妙的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: