首頁 後端開發 php教程 再讲php中require(),include(),require_once()和include_once()他们的区别_PHP教程

再讲php中require(),include(),require_once()和include_once()他们的区别_PHP教程

Jul 13, 2016 pm 04:56 PM
include once php require 差別 外部 文章 呼叫

本文章介绍了php四种调用外部文件函数用法和区别,有需要了解的朋友可以参考一下。

引用文件的方法有两种:require 及 include。两种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。


_once 后缀表示已加载的不加载

1.报错

include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码
require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码

注:在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。

2.条件引用


include()与require()的功能相同,用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数,
例如下面例子,如果变量$somg为真,则将包含文件somefile.php:

 

 代码如下 复制代码
if($some){ include 'somefile.php'; }

但无论$some取何值,下面的代码将把文件somefile.php包含进文件里:

 代码如下 复制代码
if($something){   require 'somefile.php'; }

下面的例子充分说明了这两个函数之间的不同

 代码如下 复制代码
$i = 1;
while ($i

可以从以上这段代码中看出,每一次循环的时候,程序都将把同一个文件包含进去,很显然这不我们想要的,可以看出这段代码希望在每次循环时,
将不同的文件包含进来,如果要完成这个功能,只能使用函数include()

 代码如下 复制代码
$i = 1;
while ($i include "somefile.$i.php";   $i++;
}

3.require用相对路径的时候

当A引用B,而B又引用了其他文件C时,C的路径如果是相对路径,则是相对于A的路径,而不是相对于B的'

4.require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。

include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。


5..文件引用方式

include有返回值,而require没有

 代码如下 复制代码
$login = include(’test.php’);
if(!empty($login))
{   echo “文件包含成功”;
 }
else
{   echo “文件包含失败”;
 }

include()执行时需要引用的文件每次都要进行读取和评估,
require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)
可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,
若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),
可以给想要包括的文件名设置变量,当参数为 include()时使用这个变量

 代码如下 复制代码


conn.php
$dbh=mysql_connect('localhost','root','123456');
mysql_select_db('DB','$dbh');
?>
在实际应用中,我们调用文件如:
require("conn.php")或者include("conn.php");
但是如果这样:
filename.php
require("conn.php");
function myfun($par1,$par2)
{包含对数据库处理的语句}
.....
myfun($par1,$par2);
.....
myfun($p1,$p2);
?>


 

总结


incluce在用到时加载
require在一开始就加载
_once后缀表示已加载的不加载
php系统在加载php程序时有一个伪编译过程,可使程序运行速度加快。但incluce的文档仍为解释执行
include的文件中出错了,主程序继续往下执行
require的文件出错了,主程序也停了
所以包含的文件出错对系统影响不大的话(如界面文件)就用include,否则用require
以下文档也适用于 require()。这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的 include_path。
require()函数用给定文件的内容取代它本身,这一代替过程发生在PHP引擎编译代码期间,而不是在执行期间进行,它不象include()那样会首先进行计算。require()函数更多地用在静态元素中,而include()更多地用于动态元素中。与include_once()类似的是,require_once()将首先检查是否已经插入给定的代码,如果代码已经存在,就不再插入了。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631631.htmlTechArticle本文章介绍了php四种调用外部文件函数用法和区别,有需要了解的朋友可以参考一下。 引用文件的方法有两种:require 及 include。两种方式提...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

說明匹配表達式(PHP 8)及其與開關的不同。 說明匹配表達式(PHP 8)及其與開關的不同。 Apr 06, 2025 am 12:03 AM

在PHP8 中,match表達式是一種新的控制結構,用於根據表達式的值返回不同的結果。 1)它類似於switch語句,但返回值而非執行語句塊。 2)match表達式使用嚴格比較(===),提升了安全性。 3)它避免了switch語句中可能的break遺漏問題,增強了代碼的簡潔性和可讀性。

什麼是跨站點偽造(CSRF),您如何在PHP中實施CSRF保護? 什麼是跨站點偽造(CSRF),您如何在PHP中實施CSRF保護? Apr 07, 2025 am 12:02 AM

在PHP中可以通過使用不可預測的令牌來有效防範CSRF攻擊。具體方法包括:1.生成並在表單中嵌入CSRF令牌;2.在處理請求時驗證令牌的有效性。

JavaScript中如何從指定DOM節點下使用XPath進行查找? JavaScript中如何從指定DOM節點下使用XPath進行查找? Apr 04, 2025 pm 11:15 PM

DOM節點下XPath查找方法詳解在JavaScript中,我們經常需要根據XPath表達式從DOM樹中查找特定的節點。如果需要從某�...

H5和小程序與APP的區別 H5和小程序與APP的區別 Apr 06, 2025 am 10:42 AM

H5、小程序和APP的主要區別在於:技術架構:H5基於網頁技術,小程序和APP為獨立應用程序。體驗和功能:H5輕便易用,功能受限;小程序輕量級,交互性好;APP功能強大,體驗流暢。兼容性:H5跨平台兼容,小程序和APP受平台限制。開發成本:H5開發成本低,小程序中等,APP最高。適用場景:H5適合信息展示,小程序適合輕量化應用,APP適合複雜功能應用。

您如何防止班級被擴展或方法在PHP中被覆蓋? (最終關鍵字) 您如何防止班級被擴展或方法在PHP中被覆蓋? (最終關鍵字) Apr 08, 2025 am 12:03 AM

在PHP中,final關鍵字用於防止類被繼承和方法被重寫。 1)標記類為final時,該類不能被繼承。 2)標記方法為final時,該方法不能被子類重寫。使用final關鍵字可以確保代碼的穩定性和安全性。

在router文件夾下的index.js文件中為什麼需要調用Vue.use(VueRouter)? 在router文件夾下的index.js文件中為什麼需要調用Vue.use(VueRouter)? Apr 05, 2025 pm 01:03 PM

在router文件夾下的index.js文件中註冊VueRouter的必要性在開發Vue應用程序時,常常會遇到關於路由配置的問題。特�...

PS導出PDF如何設置密碼保護 PS導出PDF如何設置密碼保護 Apr 06, 2025 pm 04:45 PM

在 Photoshop 中導出帶密碼保護的 PDF:打開圖像文件。點擊“文件”>“導出”>“導出為 PDF”。設置“安全性”選項,兩次輸入相同的密碼。點擊“導出”生成 PDF 文件。

See all articles