1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. PHP中include和require的區(qū)別

        時(shí)間:2020-10-08 17:39:29 PHP 我要投稿

        PHP中include和require的區(qū)別

          include和require在PHP中有什么區(qū)別?下面yjbys小編為大家詳細(xì)講解,快來(lái)看看吧!

          1、概要

          require()語(yǔ)句的性能與include()相類似,都是包括并運(yùn)行指定文件。不同之處在于:對(duì)include()語(yǔ)句來(lái)說(shuō),在執(zhí)行文件時(shí)每次都要進(jìn)行讀取和評(píng)估;而對(duì)于require()來(lái)說(shuō),文件只處理一次(實(shí)際上,文件內(nèi)容替換require()語(yǔ)句)。這就意味著如果可能執(zhí)行多次的代碼,則使用require()效率比較高。另外一方面,如果每次執(zhí)行代碼時(shí)是讀取不同的文件,或者有通過(guò)一組文件迭代的循環(huán),就使用include()語(yǔ)句。

          require的使用方法如:require("myfile.php"),這個(gè)語(yǔ)句通常放在PHP腳本程序的最前面。PHP程序在執(zhí)行前,就會(huì)先讀入require()語(yǔ)句所引入的文件,使它變成PHP腳本文件的一部分。include使用方法和require一樣如:include("myfile.php"),而這個(gè)語(yǔ)句一般是放在流程控制的處理區(qū)段中。PHP腳本文件在讀到include()語(yǔ)句時(shí),才將它包含的文件讀取進(jìn)來(lái)。這種方式,可以把程式執(zhí)行時(shí)的流程簡(jiǎn)單化。

          incluce在用到時(shí)加載

          require在一開始就加載

          _once后綴表示已加載的不加載

          PHP系統(tǒng)在加載PHP程序時(shí)有一個(gè)偽編譯過(guò)程,可使程序運(yùn)行速度加快。但incluce的文檔仍為解釋執(zhí)行。include的文件中出錯(cuò)了,主程序繼續(xù)往下執(zhí)行,require的文件出錯(cuò)了,主程序也停了,所以包含的文件出錯(cuò)對(duì)系統(tǒng)影響不大的話(如界面文件)就用include,否則用require。

          require()和include()語(yǔ)句是語(yǔ)言結(jié)構(gòu),不是真正的函數(shù),可以像php中其他的語(yǔ)言結(jié)構(gòu)一樣,例如echo()可以使用echo("ab")形式,也可以使用echo "abc"形式輸出字符串a(chǎn)bc。require()和include()語(yǔ)句也可以不加圓括號(hào)而直接加參數(shù)。

          include_once()和require_once()語(yǔ)句也是在腳本執(zhí)行期間包括運(yùn)行指定文件。此行為和include()語(yǔ)句及require()類似,使用方法也一樣。唯一區(qū)別是如果該文件中的代碼已經(jīng)被包括了,則不會(huì)再次包括。這兩個(gè)語(yǔ)句應(yīng)該用于在腳本執(zhí)行期間,同一個(gè)文件有可能被包括超過(guò)一次的情況下,確保它只被包括一次,以避免函數(shù)重定義以及變量重新賦值等問(wèn)題。

          2、詳情

          2.1 報(bào)錯(cuò)

          include引入文件的時(shí)候,如果碰到錯(cuò)誤,會(huì)給出提示,并繼續(xù)運(yùn)行下邊的代碼。

          require引入文件的時(shí)候,如果碰到錯(cuò)誤,會(huì)給出提示,并停止運(yùn)行下邊的代碼。

          用例子來(lái)說(shuō)話,寫兩個(gè)php文件,名字為test-include.php和test-require.php,注意相同的目錄中,不要存在一個(gè)名字是test-nothing.php的文件。

          test-include.php

          <?php

          include 'test-nothing.php';

          echo 'abc';

          ?>

          test-require.php

          <?php

          require 'test-nothing.php';

          echo 'abc';

          ?>

          瀏覽http://localhost/test-include.php,因?yàn)闆](méi)有找到test-nothing.php文件,我們看到了報(bào)錯(cuò)信息,同時(shí),報(bào)錯(cuò)信息的下邊顯示了abc,你看到的可能是類似下邊的情況:

          Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2

          Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2

          瀏覽http://localhost/test-require.php,因?yàn)闆](méi)有找到test-nothing.php文件,我們看到了報(bào)錯(cuò)信息,但是,報(bào)錯(cuò)信息的下邊沒(méi)有顯示abc,你看到的可能是類似下邊的情況:

          Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2

          Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2

          2.2 條件引用

          include()與require()的功能相同,用法上卻有一些不同,include()是有條件包含函數(shù),而require()則是無(wú)條件包含函數(shù)。

          例如下面例子,如果變量$somg為真,則將包含文件somefile.php:

          if($some){

          include 'somefile.php';

          }

          但無(wú)論$some取何值,下面的代碼將把文件somefile.php包含進(jìn)文件里:

          if($something){

          require 'somefile.php';

          }

          下面的例子充分說(shuō)明了這兩個(gè)函數(shù)之間的`不同:

          $i = 1;

          while ($i < 3) {

          require "somefile.$i.php";

          $i++;

          }

          可以從以上這段代碼中看出,每一次循環(huán)的時(shí)候,程序都將把同一個(gè)文件包含進(jìn)去,很顯然這不是我們想要的,可以看出這段代碼希望在每次循環(huán)時(shí),將不同的文件包含進(jìn)來(lái),如果要完成這個(gè)功能,只能使用函數(shù)include():

          $i = 1;

          while ($i < 3) {

          include "somefile.$i.php";

          $i++;

          }

          2.3 文件引用方式

          include()執(zhí)行時(shí)需要引用的文件每次都要進(jìn)行讀取和評(píng)估,require()執(zhí)行時(shí)需要引用的文件只處理一次(實(shí)際上執(zhí)行時(shí)需要引用的文件內(nèi)容替換了require()語(yǔ)句)可以看出若有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高,若每次執(zhí)行代碼時(shí)相讀取不同的文件或者有通過(guò)一組文件疊代的循環(huán),就使用include(),可以給想要包括的文件名設(shè)置變量,當(dāng)參數(shù)為 include()時(shí)使用這個(gè)變量。

        【PHP中include和require的區(qū)別】相關(guān)文章:

        php中session和cookie的區(qū)別11-17

        PHP中MySQL、MySQLi和PDO的用法和區(qū)別10-27

        Java和PHP的區(qū)別11-10

        PHP和Java的區(qū)別11-12

        PHP中的排序函數(shù)區(qū)別分析11-17

        php中instanceof 與 isa區(qū)別分析11-19

        php中Get方法跟Post方法的區(qū)別11-21

        街舞中poppin和lockin的區(qū)別09-14

        關(guān)于Java和PHP在Web開發(fā)方面的區(qū)別11-19

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>