欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php使用include 和require引入文件的區(qū)別

 更新時(shí)間:2017年02月16日 08:49:14   作者:我之姓冠你之名  
require()語句的性能與include()相類似,都是包括并運(yùn)行指定文件。不同之處在于:對(duì)include()語句來說,在執(zhí)行文件時(shí)每次都要進(jìn)行讀取和評(píng)估;而對(duì)于require()來說,文件只處理一次(實(shí)際上,文件內(nèi)容替換require()語句)。

最近有小伙伴,提問了有關(guān)于require_once的有關(guān)問題,對(duì)于程序中遇到的問題,無聊難度大小,只要bug存在就還值得我們?nèi)ヌ剿?,去解決。針對(duì)這個(gè)問題,我把include和require的詳細(xì)用法進(jìn)行歸納。(結(jié)合查閱資料和自己的理解,整合出來的)希望能給有需要的小伙伴一點(diǎn)幫助。

引入文件:

首先需要一個(gè)php文件:

<?php
class shao//類名必須和文件名相同?。?!
{
  public $xxx="666";
}
$shili = new shao();
echo $shili->xxx;
?>

引用:

<?php
//引入文件
include "shao.php";//引用文件;只能引用一遍
//引用多個(gè)則費(fèi)勁
//include_once("shao.php");//一次又一次
//也可以require ("shao.php");
?>

其中include與require的區(qū)別:

require:

執(zhí)行到require()時(shí),只會(huì)讀取一次檔案,故常放在程序開頭,檔案引入后PHP會(huì)將網(wǎng)頁檔重新編譯,讓引入檔成為原先網(wǎng)頁的一部分。

require() :無條件包含,如果文件不存在,會(huì)報(bào)出一個(gè)fatal error.腳本停止執(zhí)行
require遇到錯(cuò)誤時(shí),直接報(bào)錯(cuò)并停止運(yùn)行程序

include:

執(zhí)行到include()時(shí),每次皆會(huì)讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。
include() : 有條件包含,如果文件不存在,會(huì)給出一個(gè) warning,但腳本會(huì)繼續(xù)執(zhí)行
include遇到錯(cuò)誤時(shí)(引用的文件不存在),PHP只是報(bào)錯(cuò),但程序會(huì)繼續(xù)運(yùn)行下去

 以下為補(bǔ)充:

1. include有返回值,而require沒有。
2. include()包括并運(yùn)行指定文件 在處理失敗時(shí)include() 產(chǎn)生一個(gè)警告,被導(dǎo)入的程序代碼都會(huì)被執(zhí)行,而且這些程序在執(zhí)行的時(shí)候會(huì)擁有和源文件中呼叫到include()語句的位置相同的變量范圍。你可以導(dǎo)入同一個(gè)服務(wù)器中的靜態(tài)頁面。
3. include_once()的作用和include()是幾乎相同的 唯一的差別在于include_once()會(huì)先檢查要導(dǎo)入的檔案是不是已經(jīng)在該程序中的其它地方被導(dǎo)入過了,如果有的話就不會(huì)再次重復(fù)導(dǎo)入(這項(xiàng)功能有時(shí)候是很重要的,比方說要導(dǎo)入的里面宣告了一些你自行定義好的函數(shù),那么如果在同一個(gè)程序重復(fù)導(dǎo)入這個(gè)文件,在第二次導(dǎo)入的時(shí)候便會(huì)發(fā)生錯(cuò)誤訊息,因?yàn)镻HP不允許相同名稱的函數(shù)被重復(fù)宣告第二次)。
4. require()會(huì)將目標(biāo)文件的內(nèi)容讀入,并且把自己本身代換成這些讀入的內(nèi)容 在處理失敗時(shí)require() 則導(dǎo)致一個(gè)致命錯(cuò)。 這個(gè)讀入并且代換的動(dòng)作是在PHP引擎編譯你的程序代碼的時(shí)候發(fā)生的,而不是發(fā)生在PHP引擎開始執(zhí)行編譯好的程序代碼的時(shí)候(PHP 3.0引擎的工作方式是編譯一行執(zhí)行一行,但是到了PHP 4.0以后就有所改變了,PHP 4.0是先把整個(gè)程序代碼全部編譯完成后,再將這些編譯好的程序代碼一次執(zhí)行完畢,在編譯的過程中不會(huì)執(zhí)行任何程序代碼)。require()通常來導(dǎo)入靜態(tài)的內(nèi)容,而include()則適合用導(dǎo)入動(dòng)態(tài)的程序代碼。
5. 如同include_once(),require_once()會(huì)先檢查目標(biāo)文件的內(nèi)容是不是在之前就已經(jīng)導(dǎo)入過了,如果是的話,便不會(huì)再次重復(fù)導(dǎo)入同樣的內(nèi)容。
6. require是無條件包含也就是如果一個(gè)流程里加入require,無論條件成立與否都會(huì)先執(zhí)行require。
7. require通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會(huì)先讀入require所指定引入的文件,使它變成PHP程序網(wǎng)頁的一部份。常用的函數(shù),亦可以這個(gè)方法將它引入網(wǎng)頁中。
8. include一般是放在流程控制的處理部分中PHP程序網(wǎng)頁在讀到include的文件時(shí),才將它讀進(jìn)來。這種方式可以把程序執(zhí)行時(shí)的流程簡(jiǎn)單化。

推薦使用require_once()和include_once(),可以檢測(cè)文件是否有重復(fù)包含。

自動(dòng)加載:

被引用的php文件:

<?php
class shao//類名必須和文件名相同!?。?
{
  public $xxx="666";
}

?>

自動(dòng)加載:

<?php
function __autoload($asd)
{
  require $asd.".php";//可填地址查找
}
$shili = new shao();
echo $shili->xxx;
?>

相關(guān)文章

  • ajax 的post方法實(shí)例(帶循環(huán))

    ajax 的post方法實(shí)例(帶循環(huán))

    在最近的項(xiàng)目中,為了能解決在大數(shù)據(jù)查詢中出現(xiàn)的超時(shí)問題,需要將大數(shù)據(jù)拆分成小數(shù)據(jù),然后進(jìn)行循環(huán)處理。本人經(jīng)驗(yàn)不足,技術(shù)有限,只能想到用ajax來傳送數(shù)據(jù)。
    2011-07-07
  • PHP中new static() 和 new self() 的區(qū)別介紹

    PHP中new static() 和 new self() 的區(qū)別介紹

    這篇文章主要介紹了PHP中new static() 和 new self() 的區(qū)別介紹,需要的朋友可以參考下
    2015-01-01
  • 詳解WordPress中給鏈接添加查詢字符串的方法

    詳解WordPress中給鏈接添加查詢字符串的方法

    這篇文章主要介紹了詳解WordPress中給鏈接添加查詢字符串的方法,依靠add_query_arg()函數(shù)來實(shí)現(xiàn),需要的朋友可以參考下
    2015-12-12
  • PHP+Swoole實(shí)現(xiàn)web版的shell客戶端詳解

    PHP+Swoole實(shí)現(xiàn)web版的shell客戶端詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用PHP+Swoole實(shí)現(xiàn)web版的shell客戶端,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-07-07
  • php實(shí)現(xiàn)漢字驗(yàn)證碼和算式驗(yàn)證碼的方法

    php實(shí)現(xiàn)漢字驗(yàn)證碼和算式驗(yàn)證碼的方法

    這篇文章主要介紹了php實(shí)現(xiàn)漢字驗(yàn)證碼和算式驗(yàn)證碼的方法,實(shí)例分析了算式驗(yàn)證碼及中文漢字驗(yàn)證碼的實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php操作redis數(shù)據(jù)庫常見方法實(shí)例總結(jié)

    php操作redis數(shù)據(jù)庫常見方法實(shí)例總結(jié)

    這篇文章主要介紹了php操作redis數(shù)據(jù)庫常見方法,結(jié)合實(shí)例形式總結(jié)分析了PHP操作redis數(shù)據(jù)庫的基本安裝、連接、字符串、哈希表、列表、集合等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • PHP購物車類Cart.class.php定義與用法示例

    PHP購物車類Cart.class.php定義與用法示例

    這篇文章主要介紹了PHP購物車類Cart.class.php定義與用法,結(jié)合實(shí)例形式給出了購物車類Cart.class.php的完整定義代碼并分析了相關(guān)的使用技巧,需要的朋友可以參考下
    2016-07-07
  • PHP 字符串分割和比較

    PHP 字符串分割和比較

    比較兩個(gè)字符串是否相等,最常見的方法就是使用“===”來判斷,至于它和“==”的區(qū)別,簡(jiǎn)單來說就是前者強(qiáng)調(diào)“Identical”類型也要求一樣;后者要求“Equal”,值相同就可以了。
    2009-10-10
  • PHP設(shè)計(jì)模式中觀察者模式詳解

    PHP設(shè)計(jì)模式中觀察者模式詳解

    觀察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_發(fā)過程中使用最多的設(shè)計(jì)模式,本文首先概述觀察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀察者模式在Java和Spring中的應(yīng)用,最后是對(duì)觀察者模式的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)
    2022-12-12
  • PHP+JQuery+Ajax實(shí)現(xiàn)分頁方法詳解

    PHP+JQuery+Ajax實(shí)現(xiàn)分頁方法詳解

    這篇文章主要介紹了PHP+JQuery+Ajax實(shí)現(xiàn)分頁的方法,結(jié)合實(shí)例形式詳細(xì)分析了php數(shù)據(jù)查詢、分頁設(shè)置及ajax交互的相關(guān)技巧,并總結(jié)了分頁的相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-08-08

最新評(píng)論