您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在php中使用include與require引入文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
引入文件:
首先需要一個php文件:
<?php class shao//類名必須和文件名相同!?。? { public $xxx="666"; } $shili = new shao(); echo $shili->xxx; ?>
引用:
<?php //引入文件 include "shao.php";//引用文件;只能引用一遍 //引用多個則費勁 //include_once("shao.php");//一次又一次 //也可以require ("shao.php"); ?>
其中include與require的區(qū)別:
require:
執(zhí)行到require()時,只會讀取一次檔案,故常放在程序開頭,檔案引入后PHP會將網頁檔重新編譯,讓引入檔成為原先網頁的一部分。
require() :無條件包含,如果文件不存在,會報出一個fatal error.腳本停止執(zhí)行
require遇到錯誤時,直接報錯并停止運行程序
include:
執(zhí)行到include()時,每次皆會讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。
include() : 有條件包含,如果文件不存在,會給出一個 warning,但腳本會繼續(xù)執(zhí)行
include遇到錯誤時(引用的文件不存在),PHP只是報錯,但程序會繼續(xù)運行下去
以下為補充:
1. include有返回值,而require沒有。
2. include()包括并運行指定文件 在處理失敗時include() 產生一個警告,被導入的程序代碼都會被執(zhí)行,而且這些程序在執(zhí)行的時候會擁有和源文件中呼叫到include()語句的位置相同的變量范圍。你可以導入同一個服務器中的靜態(tài)頁面。
3. include_once()的作用和include()是幾乎相同的 唯一的差別在于include_once()會先檢查要導入的檔案是不是已經在該程序中的其它地方被導入過了,如果有的話就不會再次重復導入(這項功能有時候是很重要的,比方說要導入的里面宣告了一些你自行定義好的函數(shù),那么如果在同一個程序重復導入這個文件,在第二次導入的時候便會發(fā)生錯誤訊息,因為PHP不允許相同名稱的函數(shù)被重復宣告第二次)。
4. require()會將目標文件的內容讀入,并且把自己本身代換成這些讀入的內容 在處理失敗時require() 則導致一個致命錯。 這個讀入并且代換的動作是在PHP引擎編譯你的程序代碼的時候發(fā)生的,而不是發(fā)生在PHP引擎開始執(zhí)行編譯好的程序代碼的時候(PHP 3.0引擎的工作方式是編譯一行執(zhí)行一行,但是到了PHP 4.0以后就有所改變了,PHP 4.0是先把整個程序代碼全部編譯完成后,再將這些編譯好的程序代碼一次執(zhí)行完畢,在編譯的過程中不會執(zhí)行任何程序代碼)。require()通常來導入靜態(tài)的內容,而include()則適合用導入動態(tài)的程序代碼。
5. 如同include_once(),require_once()會先檢查目標文件的內容是不是在之前就已經導入過了,如果是的話,便不會再次重復導入同樣的內容。
6. require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執(zhí)行require。
7. require通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會先讀入require所指定引入的文件,使它變成PHP程序網頁的一部份。常用的函數(shù),亦可以這個方法將它引入網頁中。
8. include一般是放在流程控制的處理部分中PHP程序網頁在讀到include的文件時,才將它讀進來。這種方式可以把程序執(zhí)行時的流程簡單化。
推薦使用require_once()和include_once(),可以檢測文件是否有重復包含。
自動加載:
被引用的php文件:
<?php class shao//類名必須和文件名相同?。?! { public $xxx="666"; } ?>
自動加載:
<?php function __autoload($asd) { require $asd.".php";//可填地址查找 } $shili = new shao(); echo $shili->xxx; ?>
看完上述內容,你們對怎么在php中使用include與require引入文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。