include和require的區別

include和require都是引入指定的文件。_once表示只引入一次,即之前已經引入過的不再引入。

例如1.php中有句簡單的打印 echo '1 </br> ' 下面的程序運行的結果:

<?php
include '1.php';
require '1.php';

include_once '1.php';
require_once '1.php';

將是

1

1
而不是
1

1

1

1

如果將_once引入的語句放在include和require上面,結果將是

1

1

1

1

include與require的區別

1、加載失敗的處理方式不同

include與require除了在處理引入文件的方式不同外,最大的區別就是:

  • include在引入不存文件時產生一個警告,且腳本還會繼續執行,
  • require則會導致一個致命性錯誤,且腳本停止執行。
    <?php
    include 'hello.php';
    echo 'world';
    ?>

     

如果hello.php不存在,echo ‘world’這句是可以繼續執行的。

<?php
require 'hello.php';
echo 'world';
?>

如果hello.php不存在,echo ‘hello’這句是不會執行的,到require時就停止了。

2、include()是有條件包含函數,而 require()則是無條件包含函數。

  1. if(FALSE){
  2. include 'file.php'; //file.php不會被引入
  3. }
  4.  
  5. if(FALSE){
  6. require 'file.php'; //file.php將會被引入

3、文件引用方式

include有返回值,而require沒有

<?php
$retVal = include(’somefile.php’);
if(!empty($retVal)){
echo "文件包含成功";
}else{
echo "文件包含失敗";
}

include()執行時需要引用的文件每次都要進行讀取和評估,require()執行時需要引用的文件只處理一次(實際上執行時需要引用的文件內容替換了require()語句),可以看出若有包含這些指令之一的代碼和可能執行多次的代碼,則使用require()效率比較高,若每次執行代碼時相讀取不同的文件或者有通過一組文件疊代的循環,就使用include(),

require通常使用方法,這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。

include通常使用方法,這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,纔將它讀進來。這種方式,可以把程序執行時的流程簡單化

另外關於include和require後面是否加括號的問題,理論上來說:include和require後面加不加括號對執行結果沒有區別,但是加上括號效率較低,所以後面能不加括號就不加括號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章