本文目錄一覽:
- 1、淺談php中include文件變量作用域
- 2、php 中include怎麼用
- 3、php include怎麼使用
- 4、php中include和require的區別
- 5、PHP中include和require的區別詳解
淺談php中include文件變量作用域
本文給大家總結了php中include文件時的幾種情況下的作用域,十分的簡單實用,希望對大家熟悉include的使用能夠有所幫助。
在php中我們有時候需要include一個文件。比如我前段時間在寫一個框架的時候,打算用原生的php作為模板,然後寫一個display方法引入模板文件就可以,但是這只是我的意淫而已。
寫完後發現在模板中所有的變量都提示未定義。通過各種研究和查找資料,總結了include文件時的幾種情況下的作用域。
第一種情況:A文件include
B文件,在B文件中可以調用A中的變量。
A文件代碼:
1
2
3
4
?php
$aaa
=
‘123’;
include
B.php;
B文件代碼:
1
2
3
?php
echo
$aaa;
可以正常輸出內容。
第二種情況:A文件include
B文件,然後在A文件中可以調用B文件的變量。
A文件代碼:
1
2
3
4
5
?php
include
B.php;
echo
$fff;
B文件代碼:
1
2
3
?php
$fff
=
‘i
am
f’;
這個時候是可以正常輸出內容的。
第三種情況:A文件的某個類的某個方法中調用B文件,然後在B文件中可以調用該方法中的變量。
A文件代碼:
1
2
3
4
5
6
7
8
9
10
11
?php
class
test{
public
function
show(){
$bbb
=
‘abc’;
include
B.php;
}
}
$t
=
new
test;
$t-show();
B文件的代碼:
1
2
3
?php
echo
$bbb;
這個時候是可以正常輸出內容的。
第四種情況:A文件通過定義的一個函數引入B文件,在B文件中無法使用A中的變量,但是可以使用A文件中調用函數(display)中的變量。
A文件代碼:
1
2
3
4
5
6
7
8
9
?php
$aaa
=
‘123’;
function
display($file){
$bbb=
‘asdasdas’;
include
$file;
}
display(B.php);
B文件代碼:
1
2
3
?php
echo
$aaa;
echo
$bbb;
運行後$aaa提示未定義,$bbb可以正常輸出。
所以我開始准本用一個display方法來引入模板是不可行的。根據方面的三種情況,最後我選擇了寫一個類來導入模板文件。目前ThinkPHP和Smarty也都是用類來引入模板文件的。文中不足之處歡迎指正。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
php 中include怎麼用
使用方法:include “文件路徑”;
函數作用:引入另一個php腳本文件,並執行裡面的代碼
推薦使用:include_once “文件路徑”;
php include怎麼使用
include主要用於頁面包含;一個php文件代碼調用另一個php文件代碼,使用包含include,相當於兩個頁面代碼組合到了一塊;
除此之外還有include_once() ,require_once()和require(),略有區別;
php中include和require的區別
include有返回值,而require沒有。
2. include()包括並運行指定文件 在處理失敗時include() 產生一個警告,被導入的程序代碼都會被執行,而且這些程序在執行的時候會擁有和源文件中呼叫到include()語句的位置相同的變量範圍。你可以導入同一個服務器中的靜態頁面。
3. include_once()的作用和include()是幾乎相同的
唯一的差別在於include_once()會先檢查要導入的檔案是不是已經在該程序中的其它地方被導入過了,如果有的話就不會再次重複導入(這項功能有時候是很重要的,比方說要導入的裡面宣告了一些你自行定義好的函數,那麼如果在同一個程序重複導入這個文件,在第二次導入的時候便會發生錯誤訊息,因為PHP不允許相同名稱的函數被重複宣告第二次)。
4. require()會將目標文件的內容讀入,並且把自己本身代換成這些讀入的內容 在處理失敗時require() 則導致一個致命錯。
這個讀入並且代換的動作是在PHP引擎編譯你的程序代碼的時候發生的,而不是發生在PHP引擎開始執行編譯好的程序代碼的時候(PHP 3.0引擎的工作方式是編譯一行執行一行,但是到了PHP 4.0以後就有所改變了,PHP 4.0是先把整個程序代碼全部編譯完成後,再將這些編譯好的程序代碼一次執行完畢,在編譯的過程中不會執行任何程序代碼)。require()通常來導入靜態的內容,而include()則適合用導入動態的程序代碼。
5. 如同include_once(),require_once()會先檢查目標文件的內容是不是在之前就已經導入過了,如果是的話,便不會再次重複導入同樣的內容。
5. require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執行require。
7. require通常放在PHP程序的最前面,PHP程序在執行前,就會先讀入require所指定引入的文件,使它變成PHP程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
8. include一般是放在流程控制的處理部分中PHP程序網頁在讀到include的文件時,才將它讀進來。這種方式可以把程序執行時的流程簡單化。
PHP中include和require的區別詳解
“include”與“required”的作用都是相同的,唯一不同的是PHP在遇到“include”命令時,它就必須重新解釋一次。如果在同一個PHP網頁中出現10次“include”命令時,它便會被重新解釋10次。不過當PHP遇到“require”命令時,不管它在同一個PHP網頁中出現過幾次,PHP只會解釋一次而已。
“require”的工作方式是為了讓PHP程序得到更高的效率,所以當它在同一個PHP網頁中解釋過一次後,第二次出現便不會再解釋,這是它的優點。不過嚴格來說,這也是它的唯一
的缺點,因為它不會重複解釋引入的文件,所以當PHP網頁中使用循環或條件語句來引入文件時,“require”則不會做任何的改變。當有類似這樣的情形時,就必須使用“include”命令來引入
文件了。
當PHP遇到一個利用“include”方式引入的文件,它就會解釋一次;遇到第二次時,PHP還是會重新解釋一次。與“require”相比,“include”的執行效率則會下降許多;而且當引入文件中包含了用戶自定義的函數時,PHP在解釋的過程中會發生函數重複定義的問題。不過“include”也不是沒有優點的,因為在PHP網頁中,它會每遇到一次“include”命令就會重複解釋一次,所以非常適合使用在循環或條件判斷的語句里。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231435.html