# PHP服務端文件包含
[TOC]
文件包含:將網站中公共的代碼,放到一個公共文件中,通過服務器端包含語句(include、require)包含到當前文件中。這樣做的好處:**避免重復代碼的編寫**,也有利于后期維護。包含的文件,可以是`.html`文件,也可以是`.php`文件。文件代碼包含函數有四個:`include`、`require`、`include_once`、`require_once`
## include
描述:包含并運行指定文件。
語法:`include 包含的文件路徑`或 `include(包含的文件路徑)`
參數:包含的文件的路徑,可以是相對路徑,也可以是絕對路徑;
提示:include是一個語法結構,**可以帶括號,也可以不帶括號**。
注意:**如果包含的文件不存在,則會報 warning警告錯誤,但不會中止腳本向下運行**。
返回:如果包含文件成功,返回1。
```
# 語法
include '要包含的文件路徑,可以是相對也可以是絕對'
include_once '要包含的文件路徑,可以是相對也可以是絕對'
# 包含過來要注意,同名函數會報錯
```


## include與include\_once 區別
兩者功能完全一樣,如果包含的文件不存在,則報警告錯誤,但不會中止腳本運行。
兩者唯一區別是:**如果該文件中已經被包含過,則include\_once不會再次包含**。
include\_once可以用來判斷文件是否曾經包含過,這樣可以**避免函數重定義**,**變量重新賦值**等問題


## require
描述:包含并運行指定文件。
語法:**`require 包含的文件路徑`**??或 ?**require(包含的文件路徑)**
參數:包含的文件路徑及文件名稱。
注意:**如果包含的文件不存在,則會報致命錯誤,并會中止腳本向下運行**。
返回:如果包含文件成功,返回1。
```
# 基本與include一樣,差別就是一個報錯警告一個直接致命錯誤
require '文件路徑'
require_once '文件路徑'
```
## require與require\_once區別
兩者功能完全一樣,如果包含的文件不存在,則報致命錯誤,會中止腳本運行。
兩者唯一區別是:**如果該文件中已經被包含過,則require\_once不會再次包含**。
require\_once可以用來判斷文件是否曾經包含過,這樣可以**避免函數重定義**,**變量重新賦值**等問題
## 包含文件返回數據
如果**return語句用在被包含文件中**,返回的數據可以賦給一個變量

- 基礎
- 安裝PHP
- 語言基礎
- 變量
- 變量操作
- 超全局數組變量
- 變量作用域
- 變量傳值方式
- 常量
- 數據類型
- 運算符
- 流程控制
- 文件包含
- 錯誤處理
- 字符串操作
- 數組
- 函數
- 進階
- 面向對象
- 提高
- TP
- 安裝項目
- 框架基礎知識
- 命令創建模塊
- URL生命周期
- 路由操作
- Request請求類
- 參數綁定
- 依賴注入
- 模板操作
- 查詢操作
- 添加操作
- laravel
- ☆目錄結構
- CSRF攻擊
- ☆路由
- ☆控制器
- ☆請求類
- ☆視圖
- ☆模板繼承
- ☆表單驗證
- ☆DB類
- ☆模型
- ☆數據庫遷移
- 類型、修飾、索引
- ☆數據填充
- ☆數據分頁
- ☆session處理
- ☆中間件
- ☆緩存操作
- ☆文件上傳
- ☆接口操作
- ☆擴展插件
- restful
- 工作
- 工作記錄
- QQ登錄
- 新浪登錄
- 微信登錄
- sphinx搜索
- 數據庫
- MySQL
- ☆數據庫操作
- ☆數據表操作
- ☆數據的操作
- 待修改
- 優化
- 存儲引擎選擇
- 列表類型選擇
- 范式
- 慢日志查詢
- 精準時間記錄查詢
- 計劃任務 explain
- 索引
- 索與事務
- 查詢緩存
- 存儲過程
- 觸發器
- 分區
- 分表
- sphinx
- 讀寫分離
- 搜索優化
- 網站靜態化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服務器
- Linux
- 目錄結構
- 常用命令
- VIM編輯器
- 用戶與用戶組
- 權限管理
- 運行級別
- 網絡模式
- ssh
- 軟件安裝
- 計劃任務
- Ubuntu
- 編譯PHP7.3
- 編譯MySQL
- 編譯Nginx
- apache虛擬機配置
- 安裝composer
- Nginx
- Git