include 語句包含並執行指定檔案。
以下文件也適用於 require 。
被包含檔案先按參數給予的路徑尋找,如果沒有給予目錄(只有檔案名稱)時則依照 include_path 指定的目錄尋找。如果在 include_path 下沒找到該檔案則 include 最後才在呼叫腳本檔案所在的目錄和目前工作目錄下尋找。如果最後仍未找到文件則include 結構會發出警告;這一點和 require 不同,後者會發出一個致命錯誤。
如果定義了路徑-不管是絕對路徑(在Windows 下以磁碟機或 \ 開頭,在Unix/Linux 下以 / 開頭)或是目前目錄的相對路徑(以 . 或 .. 開頭) ——include_path 都會被完全忽略。例如一個檔案以 ../ 開頭,則解析器會在目前目錄的父目錄下尋找該檔案。
有關 PHP 如何處理包含文件和包含路徑的更多資訊請參閱 include_path 部分的文件。
當一個檔案被包含時,其中所包含的程式碼繼承了 include 所在行的變數範圍。從該處開始,呼叫檔案在該行處可用的任何變數在被呼叫的檔案中也都可用。不過所有在包含檔案中定義的函數和類別都具有全域作用域。
php include函數應該是我們最常用的方法,include() 語句包含並執行指定檔案。但就是因為這個我們可能忽略了他的一些其他用法,本人因為工作需要又重新看了一遍,在此做一下簡要記錄:
1.include與require簡單區別
當include所包含的檔案不存在時,他只是產生一個警告,但是腳本會繼續執行。
而require引用的檔案如果不存在的時候,就會提示錯誤,並終止腳本執行。
2.被包含檔案內的變數的變數範圍
當一個檔案被包含時,其中所包含的程式碼繼承了 include 所在行的變數範圍。如果 include 出現於呼叫檔案中的一個函數裡,則被呼叫的檔案中所包含的所有程式碼將表現得如同它們是在該函數內部定義的一樣。不過所有在包含檔案中定義的函數和類別都具有全域作用域。
當一個檔案被包含時,語法解析器在目標檔案的開頭脫離 PHP 模式並進入 HTML 模式,到檔案結尾處恢復。由於此原因,目標檔案中應被當作 PHP 程式碼執行的任何程式碼都必須被納入有效的 PHP 起始和結束標記之中。
3.include()回傳值
如果取得include裡面的變數值,則需要在include引用的檔案裡加上return
例如: 檔案return.php
<?php $var='ok'; return $var; ?>
if( include('return.php')=='ok' ) { ... } if不執行裡面的,因為include('return.php')值為1
if( (include 'return.php')=='ok' ) { ... } if可以執行裡面的
所以如果用include進行條件比較,需要這樣(include 'return.php')
4. 使用輸出緩衝來將PHP 文件包含入一個字串
<?php $string = get_include_contents('somefile.php'); function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } ?>
1. 包含一些類別定義文件,函數文件,這是常用的;
2.包含HTML檔
include "header.htm";
上面的header.htm中可以融合php的語句。
因為可以包含htm靜態文件,所以可以設計快取機制,例如把一些頁面分成幾個部分,有一些讀取資料庫耗效率的部分可以快取成HTML,然後透過include 引進。
3.include 的檔案可以有回傳;
$i = include 'abc.php';
abc.php 的原始碼實例:
<?php return "hello world"; ?>
那麼echo $i; 會輸出hello world.
而如果abc.php沒有return.那麼echo $i 會輸出1
include 的變數範圍
$a="hello world"; include "abc.php";
$a 在abc.php中是可見的;
abc.php 中的變數在include之後的位置也是可見的;用法非常靈活!
以上是php include的使用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!