国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP開發(fā)基礎教程之文件包含

一、文件包含概述

在實際開發(fā)中,常常需要把程序中的公用代碼放到一個文件中,使用這些代碼的文件只需要包含這個文件即可。這種方法有助于提高代碼的重用性,給代碼的編寫與維護帶來很大的便利。在PHP中, 有require、require_once、include、include- once四種方法包含一個文件。

我們來對比他們的不同:

33.png


注:
1,少用_once帶once,因為它會消耗更多的資源去做檢測的工作。

二、四種方法功能介紹

注:建議同學們將代碼復制到本地進行測試

創(chuàng)建一個1.php文件,里面寫上兩個函數(shù):

<?php
//functions.php文件
function demo(){
    echo 'aaaa';
}
function test(){
    echo 'cccdddd';
}
?>

在上述php文件的同級目錄下,我再創(chuàng)建一個2.php文件把1.php文件包含進來。這樣我的函數(shù)就可以專門放在1.php里面,哪兒需要用到這些函數(shù)的時候,我就從哪兒包含進來:

<?php

include '1.php';
//可以直接調(diào)用
demo();
test();
?>

我通過過上例我們知道了include的功能。接下來我們對比include和require:

代碼中,我們先用include 來包含不存在的test.php文件,

<?php

include '1.php';
include 'test.php';
//可以直接調(diào)用
demo();
test();
?>

在本地的輸出結(jié)果:

?34.png

再用require包含 不存在的test.php文件:

?35.png

通過上例的對比我們發(fā)現(xiàn):

  • ?如果test.php文件不存在include 會發(fā)出警告繼續(xù)執(zhí)行demo()和test()函數(shù)。

  • ??而requre則直接報錯,demo()和test()函數(shù)無法繼續(xù)執(zhí)行。

我們通過表格知道了:inlcude 和include_once的區(qū)別在于,檢測是否重復包含。如果重復包含了include_once不會再包含 對應的文件了,而include 則不管這些。有沒引入過文件,都再引入一次。

同樣剛剛的2.php我們再實驗一下,我們將functions.php包含兩次,分別使用include和include_once:

<?php

include '1.php';
include '1.php';
//可以直接調(diào)用
demo();
test();
?>

結(jié)果:

36.png

改為include_once再試一次:

<?php

include_once '1.php';
include_once '1.php';
//可以直接調(diào)用
demo();
test();
?>

輸出:

?37.png

上圖中的提示是說,不能重新定義函數(shù)demo()。

我們在函數(shù)定義章節(jié)講過,函數(shù)不能定義兩次,否則會報錯。因為我們將 3_1.php包含了兩次所以執(zhí)行了兩次,因此報這個錯誤。

而include_once不報錯的原因是因為:他檢測了functions.php曾經(jīng)包含過,不再進行包含引入了。

而require和require_once的功能,大家用你最最聰明的小腦袋是不是就能推理出來了呢?require_once有兩個特點:

1.包含 的文件必須存在,否則停止執(zhí)行

2.會做重復包含檢查喲

學習新得:

  • Include與require的區(qū)別,include遇到錯誤警告,但是繼續(xù)執(zhí)行。Require遇到錯誤之后報警,不會再向下執(zhí)行

  • ?inlcude 和include_once的區(qū)別在于,檢測是否重復包含。如果重復包含了include_once不會再包含 對應的文件了,而include 則不管這些。

?


繼續(xù)學習
||
<?php //functions.php文件 function demo(){ echo 'aaaa'; } function test(){ echo 'cccdddd'; } ?>
提交重置代碼