代碼重用
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("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("21_1.php");
echo 200;
include_once('21_1.php');
echo 300;
這樣自然就不會報錯了。
以上均爲個人理解,初學php,如果有不對的地方,歡迎大家指正!