代码重用
include() require() 载入文件
include() 如果载入的文件不存在,提示 警告错误。require() 如果载入的文件不存在,致命性错误,程序终止不继续执行。
在文件存在的情况下两者区别不大,也可以载入html文件等。
include_once() require_once()
也是载入文件,只载入一次文件,如果此文件载入过将不再载入。
例如:
在www文件夹下新建两个文件:21.php、21_1.php。
21_1.php的内容:
<?php
function say($name){
echo "你的名字是".$name;
}
?>
21.php的内容:
<?php
include('21_1.php');
say('无名氏'); //结果:你的名字是无名氏
echo '雾霾天气坏处多'; //结果:雾霾天气坏处多
?>
如果文件名打错或21_1.php不存在,include时发生错误,那么say()将不能执行,但是下面的语句会继续执行。
<?php
include('21_11.php'); //报错,继续运行下面的语句
//say('无名氏');
echo '雾霾天气坏处多'; //结果:雾霾天气坏处多
?>
如果改成require()的话:
<?php
require('21_11.php'); //报错,在此处终止脚本运行
//say('无名氏');
echo '雾霾天气坏处多'; //结果:无输出
?>
这里的include、require载入,通俗地说,就相当于把载入文件中的代码全部移到本文件中被载入的位置。因此执行顺序自然明了:
21_1.php的内容:
<?php
function say($name){
echo "你的名字是".$name;
}
echo '21_1.php msg ';
?>
21.php的内容:
<?php
include('21_1.php');
echo '21.php msg'; //执行结果:21_1.phpmsg 21.php msg
?>
重复载入:
如果用include或require多次重复载入同一个文件,则会发生错误,因为php中同一个函数不能重复定义:
include("21_1.php");
echo 200;
include('21_1.php');
echo 300;
报错:
500200
( ! ) Fatal error: Cannot redeclare say() (previously declared in D:\wamp\www\21_1.php:2) in D:\wamp\www\21_1.php on line 4
只载入一次:
此时就可以使用include_once()、或者require_once(),如果文件已经载入过,将不再载入。
include("21_1.php");
echo 200;
include_once('21_1.php');
echo 300;
这样自然就不会报错了。
以上均为个人理解,初学php,如果有不对的地方,欢迎大家指正!