首先要說的是,include、include_once、require、require_once的核心功能都是一樣的,都是相當于把目標網頁的代碼生硬地直接復制過來,
基本上,如果不從性能上考慮,使用include、include_once、require、require_once都可以達到基本的效果,基本上愛怎么用就怎么用,
其中的微小差別如下:
例如1.php中有句簡單的列印陳述句:
<?php
echo "1";
?>
下面的程式運行的結果:
<?php
include '1.php';
require '1.php';
include_once '1.php';
require_once '1.php';
?>
為2個1,而不是4個1,因為include和require都是引入指定的檔案,_once表示只引入一次,即之前已經引入過的不再引入,
如果寫成:
<?php
include_once '1.php';
require_once '1.php';
include '1.php';
require '1.php';
?>
結果將是4個1,
值得注意的是,_once雖然表示之前已經引入過的不再引入,但這個陳述句不會檢查所引入的網頁中的代碼是否相同,比如有兩個代碼一模一樣的網頁untitled.html與untitled1.html皆為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題檔案</title>
</head>
<body>
</body>
</html>
如果有以下的陳述句:
<?php
include_once 'untitled.html';
include_once 'untitled1.html';
?>
出來的結果是這樣的:

看到相同的部分出現兩次,_once只是通過檔案名來判斷之前已經引入過是否再引入,
因此_once并不能防止不同名卻同一個資源多次引入的現象,
而include與require除了在處理引入檔案的方式不同外,最大的區別就是:include在引入不存檔案時產生一個警告且腳本還會繼續執行,require則會導致一個致命性錯誤且腳本停止執行,
比如a.php如果不存在,以下的代碼,依舊會輸出b:
<?php
include 'a.php';
echo 'b';
?>
而:
<?php
require 'a.php';
echo 'b';
?>
則不會,
同時還有如下的區別:
include()是有條件包含函式,而 require()則是無條件包含函式
if(FALSE){
include 'file.php'; //file.php不會被引入
}
if(FALSE){
require 'file.php'; //file.php將會被引入
}
include有回傳值,而require沒有
$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后面加不加括號對執行結果沒有區別,但是加上括號效率較低,所以后面能不加括號就不加括號,
文章來自:https://blog.csdn.net/yongh701/article/details/47972483
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/79318.html
標籤:PHP
上一篇:php 解決json_encode中文UNICODE轉碼問題【轉】
下一篇:了解下Redis的SDS結構
