自学php笔记--include和require的比较

php php 966      收藏
自学php,关于include和require的介绍及比较。

自学php博客

作用:导入外部文件

用法:include(“文件名”);

这两个函数都是文件引入函数。

导入成功返回1。如果被导入文件中使用了return,则终止被导入的文件的执行,return之后的变量将无法访问,但是return之后的自定义函数,仍然可以被调用。(return对自定义函数不起作用,只对变量起作用)

(1)

<?php

var_dump(require("data.php"));

?>

返回值是1

(2)

data.php

<?php

$name='tom';

return 'a';

?>

引用文件

<?php

var_dump(require("data.php"));

echo require("data.php");

?>返回a a

(3)

如果data.php中有return,则返回值是return后面的内容。

data.php

<?php

$name='tom';

return 'a';

$t='测试数据';

?>

引用文件

<?php

var_dump(require("data.php"));

echo $t;

?>

报错 未定义$t;

区别:

  • include和require

include:引入文件时,如果引入失败的话,程序会报错,但是程序会继续执行。

require:引入文件时,如果引入失败的话,程序只报错,不会执行。

  • include_once和require_once

用他们引入文件时,会检查被引入文件是否已经被移入过了,如果已经引入就不会再引入,一个文件只会被引入一次。

  • require和require_once细节

一般放在php页面的最前面,php执行之前,就先读入require所引入的文件,一旦出现错误,则退出程序;

这两个的区别为,前者遇到即包含文件,后者会判断是否已经包含文件过了,如果包含过了,则不在包含文件。以可以节省资源,二可以避免重复定义的错误。


总结:我们应该选择哪个来引入文件?

在实际项目开发中,基本上都是使用require_once。


(4)

data.php

<?php

//次文件保存了一个用户信息,

$name= ‘张三’;

?>

test.php

<?php

$name="李四";

require“./data.php”;

echo $name;

?>

输出结果是张三

后面的名字会覆盖前面的,可能会因为这个原因导致,前面的很多$name都被覆盖掉,导致失误。这是就体现了return的好处,如下面的例子:

data.php

<?php

//次文件保存了一个用户信息,

return ‘张三’;

?>

test.php

<?php

$name="李四";

$name2= require“./data.php”;

echo $name;

echo $name2;

?>