PHP中include/require/include_once/require_once使用心得
最近一直在抽時(shí)間來學(xué)習(xí)PHP,據(jù)說PHP是世界上最好的語言,于是各大論壇炸開了鍋!哈哈,我們這里不是來討論哪門語言是最好的語言,我們是在學(xué)習(xí)PHP中經(jīng)常使用到的文件引入的四種方式的特點(diǎn)及區(qū)別!
相信大家在使用PHP時(shí)經(jīng)??吹絠nclude a.php、include_once a.php、require a.php或者require_once a.php類似這樣的寫法吧?
我們一起來學(xué)習(xí)和總結(jié)一下這幾個(gè)語句的作用及特點(diǎn)!
include
使用方法:
include "test.php";
一般是放在流程控制的處理部分中使用,將文件內(nèi)容引入。PHP程序在遇到include語句時(shí),才將它讀進(jìn)來,這種方式可以把程序執(zhí)行時(shí)的流程簡單化,便于復(fù)用代碼!
include在引入不存文件時(shí)產(chǎn)生一個(gè)警告且腳本還會(huì)繼續(xù)執(zhí)行,執(zhí)行時(shí)需要引用的文件每次都要進(jìn)行讀取和評估,且有返回值,比如:
if(FALSE) { include 'test.php'; // test.php不會(huì)被引入 } <?php include 'test.php';// 現(xiàn)在的條件是test.php不存在 echo '標(biāo)哥的技術(shù)博客'; // 仍然執(zhí)行下面的代碼 ?> $ret = include "QueryPhone.php"; if (!empty($ret)) { echo "文件引入成功"; } else { echo "文件引入失敗"; }
include_once
使用方法:
include_once "test.php";
加了_once之后,表示文件已引入的將不再引入。include_once引入文件的時(shí)候,如果碰到錯(cuò)誤會(huì)給出提示并繼續(xù)運(yùn)行下邊的代碼!
他的使用方式與include差不多,不同的是include_once只引入一篇!
require
使用方法:
require "test.php";
一般是放在PHP文件的最前面將文件內(nèi)容引入,PHP會(huì)將require的文件內(nèi)容先引入成功當(dāng)前文件的一部分,然后才開始執(zhí)行后面的代碼。
require在引入文件失敗時(shí)會(huì)給出提示且腳本會(huì)被中斷執(zhí)行。比如:
// 文件是不存在的 require "QueryPhone.php"; echo "沒有被打印";
require_once
使用方法:
require_once "test.php";
一般是放在PHP文件的最前面將文件內(nèi)容引入,PHP會(huì)先將待引入的文件內(nèi)容引入到本文件中,如果引入失敗則不會(huì)繼續(xù)往下執(zhí)行;如果引入成功,則可正常執(zhí)行下面的代碼。
它的使用方式與require差不多,不同的是require_once只會(huì)引入一次,如果之前已引入過,則不會(huì)再引入!
綜合例子
假設(shè)有一個(gè)文件中a.php,里面只有一句echo file name is a;
<?php include 'a.php'; require 'a.php'; include_once 'a.php'; require_once 'a.php';
那么上面這四個(gè)引入會(huì)打印多少行呢?其實(shí)只會(huì)打印前面的兩句代碼執(zhí)行結(jié)果,因此只有兩個(gè):
file name is a file name is a
下面我們來交換一下前兩行與后兩行試試:
<?php include_once 'a.php'; require_once 'a.php'; include 'a.php'; require 'a.php';
那么上面這四句會(huì)打印出多少行呢?自然是四行,因?yàn)榍皟尚性诖酥安]有引入過,因此會(huì)引入一次,而include/require雖然之前引入過,還會(huì)再引入,因此打印結(jié)果:
file name is a file name is a file name is a file name is a
注意事項(xiàng)
從理論上說,include和require后面加不加括號(hào)對執(zhí)行的結(jié)果并沒有什么區(qū)別,但是加上括號(hào)效率相對會(huì)較低,所以通常后面能不加括號(hào)就不要添加括號(hào)了!
相關(guān)文章
php中instanceof 與 is_a()區(qū)別分析
總的來說php中instanceof 與 is_a()功能是一樣的,不同的是由于PHP的版本不同,部分PHP版本舍棄了is_a() 下面我們來具體分析下吧。2015-03-03比file_get_contents穩(wěn)定的curl_get_contents分享
相信使用過file_get_contents函數(shù)的朋友都知道,當(dāng)獲取的$url訪問不了時(shí),會(huì)導(dǎo)致頁面漫長的等待,甚至還能導(dǎo)致PHP進(jìn)程占用CPU達(dá)100%,因此這個(gè)函數(shù)就誕生了2012-01-01php5與php7的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于php5與php7的區(qū)別是什么的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-10-10PHP使用PDO調(diào)用mssql存儲(chǔ)過程的方法示例
這篇文章主要介紹了PHP使用PDO調(diào)用mssql存儲(chǔ)過程的方法,結(jié)合簡單實(shí)例形式分析了php基于pdo簡單實(shí)現(xiàn)連接及調(diào)用存儲(chǔ)過程相關(guān)操作技巧,需要的朋友可以參考下2017-10-10php函數(shù)實(shí)現(xiàn)判斷是否移動(dòng)端訪問
本文給大家分享的是一則php判斷是否移動(dòng)端訪問的函數(shù),是之前收藏的,這里發(fā)出來,推薦給小伙伴們。2015-03-03PHP實(shí)現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的數(shù)組和XML文件相互轉(zhuǎn)換功能,結(jié)合實(shí)例形式分析了php針對xml格式數(shù)據(jù)與數(shù)組相互轉(zhuǎn)換操作技巧,需要的朋友可以參考下2018-03-03