PHP编程

浅谈include与require的区别

日期:2015/6/28来源: IT猫扑网

很多学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;
这样两者都一致了!

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消