《PHP實(shí)戰(zhàn):淺談php中include文件變量作用域》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):淺談php中include文件變量作用域,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
在php中我們有時(shí)候需要include一個(gè)文件.比如我前段時(shí)間在寫(xiě)一個(gè)框架的時(shí)候,打算用原生的php作為模板,然后寫(xiě)一個(gè)display方法引入模板文件就可以,但是這只是我的意淫罷了.PHP實(shí)戰(zhàn)
寫(xiě)完后發(fā)現(xiàn)在模板中所有的變量都提示未定義.通過(guò)各種研究和查找資料,總結(jié)了include文件時(shí)的幾種情況下的作用域.PHP實(shí)戰(zhàn)
第一種情況:A文件include B文件,在B文件中可以調(diào)用A中的變量.
PHP實(shí)戰(zhàn)
A文件代碼:PHP實(shí)戰(zhàn)
<?php $aaa = '123'; include "B.php";
B文件代碼:PHP實(shí)戰(zhàn)
<?php echo $aaa;
可以正常輸出內(nèi)容.PHP實(shí)戰(zhàn)
第二種情況:A文件include B文件,然后在A文件中可以調(diào)用B文件的變量.
A文件代碼:PHP實(shí)戰(zhàn)
<?php include "B.php"; echo $fff;
B文件代碼:PHP實(shí)戰(zhàn)
<?php $fff = 'i am f';
這個(gè)時(shí)候是可以正常輸出內(nèi)容的.PHP實(shí)戰(zhàn)
第三種情況:A文件的某個(gè)類(lèi)的某個(gè)辦法中調(diào)用B文件,然后在B文件中可以調(diào)用該辦法中的變量.
A文件代碼:
PHP實(shí)戰(zhàn)
<?php class test{ public function show(){ $bbb = 'abc'; include "B.php"; } } $t = new test; $t->show();
B文件的代碼:PHP實(shí)戰(zhàn)
<?php echo $bbb;
這個(gè)時(shí)候是可以正常輸出內(nèi)容的.PHP實(shí)戰(zhàn)
第四種情況:A文件通過(guò)定義的一個(gè)函數(shù)引入B文件,在B文件中無(wú)法使用A中的變量,但是可以使用A文件中調(diào)用函數(shù)(display)中的變量.
A文件代碼:PHP實(shí)戰(zhàn)
<?php $aaa = '123'; function display($file){ $bbb= 'asdasdas'; include $file; } display("B.php");
B文件代碼:PHP實(shí)戰(zhàn)
<?php echo $aaa; echo $bbb;
運(yùn)行后$aaa提示未定義,$bbb可以正常輸出.PHP實(shí)戰(zhàn)
所以我開(kāi)始準(zhǔn)本用一個(gè)display辦法來(lái)引入模板是不可行的.根據(jù)方面的三種情況,最后我選擇了寫(xiě)一個(gè)類(lèi)來(lái)導(dǎo)入模板文件.目前ThinkPHP和Smarty也都是用類(lèi)來(lái)引入模板文件的.文中不足之處歡迎指正.PHP實(shí)戰(zhàn)
以上所述便是本文的全部?jī)?nèi)容了,希望大家能夠喜歡.PHP實(shí)戰(zhàn)
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP實(shí)戰(zhàn):淺談php中include文件變量作用域》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10309.html