IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁網(wǎng)絡(luò)編程PHP編程 → 淺談include與require的區(qū)別

淺談include與require的區(qū)別

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

很多學(xué)php的人都會被 include、require、require_once、include_once 幾個東西弄個頭暈轉(zhuǎn)向

書上的說法是 require 是預(yù)先載入的,不過細(xì)心的會發(fā)現(xiàn),在程序中用 include 和 require 一個文件,其實并無區(qū)別

require_once 、 include_once 則是表示不重復(fù)載入某文件,含義是一樣的,那么到底區(qū)別在那里呢?

下面說幾個例子說明問題:

例一:在局部代碼中,不管是include還是require其實都不會預(yù)加載代碼的
如:
<?php
if(isset($aaa)) include("aaa.php");
(isset($aaa)) require("aaa.php");
echo 'ok';
?>

不管是否存在 aaa.php 上面的程序都是不會報錯的,這說明在全部文件的局部作用域中 require 和 include 是一樣的

下面定義文件 bbb.php
<?php
$bbb = 'I am bbb!';
?>
下面是引用bbb.php的程序
<?php
function test1(){
  require("bbb.php");
  echo "RQ".$bbb;
}
function test2(){
  include("bbb.php");
echo "INC".$bbb;
}

test1();

test2();

?>
運行上述文件最終的結(jié)果是:RQ會報錯或只輸出RQ
INC會輸出INC I am bbb
現(xiàn)在能分出 require 和 include 的區(qū)別了吧

就是說 require  不管放在那里,都會被當(dāng)作全局的代碼,而include里面的代碼本身可以當(dāng)作局部的代碼

因此,如果你在函數(shù)或類里調(diào)用有定義全局變量的文件,應(yīng)該用 include ,如果純函數(shù)則兩都都可以

如果不想弄亂程序結(jié)構(gòu),也可以在 bbb.php 中聲明 global $bbb;
這樣兩者都一致了!

關(guān)鍵詞標(biāo)簽:區(qū)別,include,require

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 plsql developer怎么連接數(shù)據(jù)庫-plsql deveplsql developer怎么連接數(shù)據(jù)庫-plsql deve2021年最好用的10款php開發(fā)工具推薦2021年最好用的10款php開發(fā)工具推薦在 PHP 中使用命令行工具在 PHP 中使用命令行工具php應(yīng)用程序安全防范技術(shù)研究php應(yīng)用程序安全防范技術(shù)研究

相關(guān)下載

人氣排行 詳解ucenter原理及第三方應(yīng)用程序整合思路、方法PHP中防止SQL注入攻擊PHP會話Session的具體使用方法解析PHP運行出現(xiàn)Notice : Use of undefined constant 的解決辦法CakePHP程序員必須知道的21條技巧PHP采集圖片實例(PHP采集)PHP如何清空mySQL數(shù)據(jù)庫plsql developer怎么連接數(shù)據(jù)庫-plsql developer連接數(shù)據(jù)庫方法