站長資訊網
最全最豐富的資訊網站

詳細解析PHP文件包含

本篇文章給大家帶來了關于PHP的相關知識,其中主要介紹了關于文件包含的相關問題,包括了文件包含的概念、作用,文件包含的四種形式,以及文件加載原理的相關內容,下面一起來看一下,希望對大家有幫助。

詳細解析PHP文件包含

推薦學習:《PHP視頻教程》

一、文件包含的概念

在一個PHP腳本中,去將另外一個文件(PHP)包含進來,去合作完成一件事情。


二、文件包含的作用

  • 要么使用被包含文件中的內容,實現代碼的共享(重用):向上包含(索要)向上包含:在當前腳本要用某個代碼之前包含別的文件
  • 要么自己有東西可以給別的文件使用,實現代碼的共享(重用):向下包含(給予)向下包含:在自己有某個東西的時候,需要別的腳本來顯示(自己代碼寫完之后包含其他文件)

最大的作用:分工協作,每個腳本做的事情不一樣,因此可以使用協作方式,讓多個腳本共同完成一件事情。


三、文件包含的四種形式

  • Include:包含文件
  • Include_once:系統會自動判斷文件包含過程中,是否已經包含過(一個文件最多被包含一次)
  • Require:與include相同
  • Require_once:以include_once相同

(一)向上包含——先包含文件,后使用文件中的內容

被包含文件代碼

<h3>文件包含——被包含文件</h3> <?php 	header("Content-type:text/html;charset=gbk"); 	$a = 2;$b = 4; 	define("xiaofeng",'cool');

包含文件代碼

<h3>文件包含——包含文件</h3> <?php 	header("Content-type:text/html;charset=gbk"); 	include "56.php";//包含文件56.php 	echo $a,"<hr>",$b,"<hr>",xiaofeng;

詳細解析PHP文件包含

(二)向下包含——先準備內容,然后包含另外文件,在另外的文件中,使用當前的內容。

被包含文件代碼

<h3>文件包含——被包含文件</h3> <?php 	header("Content-type:text/html;charset=gbk"); 	echo $a,"<hr>",$b,"<hr>",xiaofeng;//輸出數據

包含文件代碼

<h3>文件包含——包含文件</h3> <?php 	header("Content-type:text/html;charset=gbk"); 	$a = 2;$b = 4; 	define("xiaofeng",'cool');//定義數據 	include_once '59.php';//包含數據為了顯示以上的內容

詳細解析PHP文件包含


四、文件加載原理

(一)PHP代碼的執行流程

  1. 讀取代碼文件(PHP程序)
  2. 編譯:將PHP代碼轉換成字節碼(生成opcode)
  3. zendengine來解析opcode,按照字節碼去進行邏輯運算
  4. 轉換成對應的HTML代碼

(二)文件加載原理

  • 在文件加載(include或者require)的時候,系統會自動的將被包含文件中的代碼相當于嵌入到當前文件中
  • 加載位置:在哪加載,對應的文件中的代碼嵌入的位置就是對應的include位置
  • 在PHP中被包含的文件是單獨進行編譯的

注意:PHP文件在編譯的過程中如果出現了語法錯誤,那么會失敗(不會執行);但是如果被包含文件有錯誤的時候,系統會在執行到包含include這條語句的時候才會報錯。

(三)文件加載路徑

文件在加載的時候需要指定文件路徑才能保證PHP正確的找到對應的文件。

1.絕對路徑:從磁盤的根目錄開始(本地絕對路徑)

  • Windows:盤符C:/路徑/PHP文件
  • Linux:/路徑/PHP文件
  • 從網站根目錄開始(網絡絕對路徑)
  • /:相對于網站主機名字對應的路徑
  • Localhost/index.php -> E:/server/apache/htdocs/index.php

2.相對路徑 :從當前文件所在目錄開始的路徑

  • ./:表示當前文件夾
  • ../:上級目錄(當前文件夾的上一層文件夾)

3.絕對路徑和相對路徑的加載區別

1、 絕對路徑相對效率偏低,但是相對安全(路徑不會出問題)

2、 相對路徑相對效率高些,但是容易出錯(相對路徑會發生改變)


五、文件嵌套包含

一個文件包含另外一個文件,同時被包含的文件又包含了另外一個文件。嵌套包含的時候就很容易出現相對路徑出錯的問題:相對路徑會因為文件的包含而改變(./和../):windows下面,每一個文件夾下都有.和..的文件夾。

詳細解析PHP文件包含


六、Include和require區別

(一)Include和include_once的區別:

  • Include系統會碰到一次,執行一次;如果對統一個文件進行多次加載,那么系統會執行多次;
  • Include_once:系統碰到多次,也只會執行一次。

(二)Require和include的區別

本質都是包含文件,唯一的區別在于包含不到文件的時候,報錯的形式不一樣

  • Include的錯誤級別比較輕:不會阻止代碼執行
  • Require要求較高:如果包含出錯代碼不再執行(require后面的代碼)

推薦學習:《PHP視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
99久热re在线精品视频| 2018国产精华国产精品| 99在线热播精品免费99热| 久久九九AV免费精品| 亚洲精品偷拍无码不卡av| 亚洲A∨精品一区二区三区下载 | 91精品国产免费网站| 国产精品秘入口18禁麻豆免会员| 制服丝袜日韩中文字幕在线| 精品国产高清在线拍| 国产亚洲精品拍拍拍拍拍| 久久精品国产亚洲av麻豆色欲| 亚洲av永久中文无码精品| 中文字幕精品1在线| 国产精品100页| 亚洲精品自在在线观看| 亚洲伊人久久精品| 日韩GAY小鲜肉啪啪18禁| 亚洲国产精品va在线播放| 精品无码综合一区二区三区| 国产精品理论片在线观看| 亚洲国产精品美女| 国产一区二区精品久久| 九九九精品成人免费视频| 久久精品国产亚洲麻豆| 亚洲av永久中文无码精品| 婷婷精品国产亚洲AV麻豆不片| 国产伦精品一区二区三区精品| 99久久国产综合精品五月天| 老司机午夜精品视频在线观看免费| 久久九九国产精品怡红院 | 人妻无码精品久久亚瑟影视| 精品真实国产乱文在线| 精品一久久香蕉国产线看播放| 国产精品久久久久久亚洲小说| 国产精品丝袜一区二区三区| 国内精品在线播放| 久久国产精品岛国搬运工| 国产精品无码久久av| 亚洲av永久无码精品漫画| 精品一区二区三区四区在线|