最近一直在抽時間來學習PHP,據說PHP是世界上最好的語言,於是各大論壇炸開了鍋!哈哈,我們這裡不是來討論哪門語言是最好的語言,我們是在學習PHP中經常使用到的文件引入的四種方式的特點及區別!
相信大家在使用PHP時經常看到include a.php、include_once a.php、require a.php或者require_once a.php類似這樣的寫法吧?
我們一起來學習和總結一下這幾個語句的作用及特點!
include
使用方法:
include "test.php";
一般是放在流程控制的處理部分中使用,將文件內容引入。PHP程序在遇到include語句時,才將它讀進來,這種方式可以把程序執行時的流程簡單化,便於復用代碼!
include在引入不存文件時產生一個警告且腳本還會繼續執行,執行時需要引用的文件每次都要進行讀取和評估,且有返回值,比如:
if(FALSE) { include 'test.php'; // test.php不會被引入 } <?php include 'test.php';// 現在的條件是test.php不存在 echo '標哥的技術博客'; // 仍然執行下面的代碼 ?> $ret = include "QueryPhone.php"; if (!empty($ret)) { echo "文件引入成功"; } else { echo "文件引入失敗"; }
include_once
使用方法:
include_once "test.php";
加了_once之後,表示文件已引入的將不再引入。include_once引入文件的時候,如果碰到錯誤會給出提示並繼續運行下邊的代碼!
他的使用方式與include差不多,不同的是include_once只引入一篇!
require
使用方法:
require "test.php";
一般是放在PHP文件的最前面將文件內容引入,PHP會將require的文件內容先引入成功當前文件的一部分,然後才開始執行後面的代碼。
require在引入文件失敗時會給出提示且腳本會被中斷執行。比如:
// 文件是不存在的 require "QueryPhone.php"; echo "沒有被打印";
require_once
使用方法:
require_once "test.php";
一般是放在PHP文件的最前面將文件內容引入,PHP會先將待引入的文件內容引入到本文件中,如果引入失敗則不會繼續往下執行;如果引入成功,則可正常執行下面的代碼。
它的使用方式與require差不多,不同的是require_once只會引入一次,如果之前已引入過,則不會再引入!
綜合例子
假設有一個文件中a.php,裡面只有一句echo file name is a;
<?php include 'a.php'; require 'a.php'; include_once 'a.php'; require_once 'a.php';
那麼上面這四個引入會打印多少行呢?其實只會打印前面的兩句代碼執行結果,因此只有兩個:
file name is a file name is a
下面我們來交換一下前兩行與後兩行試試:
<?php include_once 'a.php'; require_once 'a.php'; include 'a.php'; require 'a.php';
那麼上面這四句會打印出多少行呢?自然是四行,因為前兩行在此之前並沒有引入過,因此會引入一次,而include/require雖然之前引入過,還會再引入,因此打印結果:
file name is a file name is a file name is a file name is a
注意事項
從理論上說,include和require後面加不加括號對執行的結果並沒有什麼區別,但是加上括號效率相對會較低,所以通常後面能不加括號就不要添加括號了!