亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

php 檔案包含函數(shù)

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

我們來比較他們的不同:

#包含失敗#特點
Inlcude傳回一條警告檔案繼續(xù)向下執(zhí)行。通常用於動態(tài)包含
Require一個致命的錯誤程式碼就不會繼續(xù)向下執(zhí)行。通常包含極為重要的文件,整個程式碼甭想執(zhí)行
Include_once返回一條警告除了原有include的功能以外,它還會做once檢測,如果檔案曾經(jīng)已經(jīng)被包含過,不再包含
Require_once一個致命的錯除了原始的功能一外,會做一次once偵測,防止檔案重複被包含

注意:
1,少用_once帶once,因為它會消耗更多的資源去做檢測的工作。
2,特高級
Include檔案只需要編譯一次,因為每次包含include都會再執(zhí)行一次對應(yīng)的程式碼,如何減少include再次執(zhí)行時,需要重新解析的過程。

我們來做一幾個實驗:

1,include包含函數(shù)的函數(shù)。

建立一個functions.php文件,裡面寫上兩個函數(shù):

<?php
//functions.php文件

function demo(){
   echo 'aaaa';
}

function test(){
   echo 'cccdddd';
}

?>

在functions.php的同級目錄下,我再建立一個user.php檔案把functions.php文件包含進(jìn)來。這樣我的函數(shù)就可以專門放在functions.php裡面,哪裡需要用到這些函數(shù)的時候,我就從哪裡包含進(jìn)來:

<?php

//user.php

include 'functions.php';

//可以直接調(diào)用
demo();

test();

?>

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

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

<?php

//user.php

include 'functions.php';
include 'test.php';

//可以直接調(diào)用
demo();

test();

?>

再用require包含不存在的test.php檔案:

<?php

//user.php

include 'functions.php';
require 'test.php';

//可以直接調(diào)用
demo();

test();

?>

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

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

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

我們透過表格知道了:inlcude 和include_once的差別在於,偵測是否重複包含。如果重複包含了include_once不會再包含 對應(yīng)的檔案了,而include 則不管這些。有沒引進(jìn)過文件,都再引進(jìn)一次。

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

<?php

//user.php

//這兒被包含了兩次同樣的函數(shù)定義文件喲
include 'functions.php';
include 'functions.php';

//可以直接調(diào)用
demo();

test();

?>

改為include_once再試一次:

<?php

<?php
//user.php

//這兒被包含了兩次同樣的函數(shù)定義文件喲
include_once 'functions.php';
include_once 'functions.php';

//可以直接調(diào)用
demo();

test();

?>

大家分別執(zhí)行後會發(fā)現(xiàn)-include 這次引入functions.php兩次的時候報瞭如下錯誤:

QQ截圖20161114112303.png

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

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

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

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

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

????2.會做重複包含檢查喲

QQ圖片20161114112544.gif

#########
繼續(xù)學(xué)習(xí)
||
<?php //user.php //這兒被包含了兩次同樣的函數(shù)定義文件喲 include_once 'functions.php'; include_once 'functions.php'; //可以直接調(diào)用 demo(); test(); ?>