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

詳細解析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號
2022国产精品视频| 久久机热re这里只有精品15| 日韩在线观看视频黄| 久久久99精品成人片| 国产成人高清精品免费鸭子| 2021最新久久久视精品爱| 久久99精品久久久久久久久久| 国产成人精品白浆久久69| 国产成人综合日韩精品无码不卡 | 日韩精品无码免费专区网站 | 亚洲国产精品无码久久久| 久久这里只精品国产免费10| 国产综合成人色产三级高清在线精品发布| 一本大道无码日韩精品影视_| 亚洲AV日韩精品久久久久久久| 国产在线精品美女观看| 国产精品香蕉成人网在线观看 | 日韩美女18网站久久精品| 国产精品白丝喷水在线观看| 多人伦精品一区二区三区视频| 亚洲国产精品无码久久九九大片 | 亚洲午夜精品一区二区麻豆| 亚洲国产成人精品激情| 亚洲伊人久久精品| 亚洲乱人伦精品图片| 69国产成人综合久久精品91| 久久精品国产亚洲av水果派| 999精品久久久中文字幕蜜桃| 99re国产精品| 亚洲精品午夜在线观看| 91精品免费久久久久久久久| 91精品国产91久久久久久蜜臀 | 国产精品一区二区资源| 精品免费国产一区二区| 国产精品美女久久久久av超清 | 日韩无套内射视频6| 精品一区二区三区在线观看l| 99re5在线精品视频热线| 久久66热这里只会有精品| 久久99热精品免费观看牛牛| 亚洲精品福利视频|