IT猫扑网文章教程

分类分类

浅谈include与require的区别

2015-06-28 00:00作者:网管联盟

很多学PHP的人都会被 include、require、require_once、include_once 几个东西弄个头晕转向

书上的说法是 require 是预先载入的,不过细心的会发现,在程序中用 include 和 require 一个文件,其实并无区别

require_once 、 include_once 则是表示不重复载入某文件,含义是一样的,那么到底区别在那里呢?

下面说几个例子说明问题:

例一:在局部代码中,不管是include还是require其实都不会预加载代码的
如:
<?php
if(isset($aaa)) include(&aaa.php&);
(isset($aaa)) require(&aaa.php&);
echo 'ok';
?>

不管是否存在 aaa.php 上面的程序都是不会报错的,这说明在全部文件的局部作用域中 require 和 include 是一样的

下面定义文件 bbb.php
<?php
$bbb = 'I am bbb!';
?>
下面是引用bbb.php的程序
<?php
function test1(){
  require(&bbb.php&);
  echo &RQ&.$bbb;
}
function test2(){
  include(&bbb.php&);
echo &INC&.$bbb;
}

test1();

test2();

?>
运行上述文件最终的结果是:RQ会报错或只输出RQ
INC会输出INC I am bbb
现在能分出 require 和 include 的区别了吧

就是说 require  不管放在那里,都会被当作全局的代码,而include里面的代码本身可以当作局部的代码

因此,如果你在函数或类里调用有定义全局变量的文件,应该用 include ,如果纯函数则两都都可以

如果不想弄乱程序结构,也可以在 bbb.php 中声明 global $bbb;
这样两者都一致了!

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消