国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

淺談php中include文件變量作用域

2024-05-04 23:36:27
字體:
來源:轉載
供稿:網友

在php中我們有時候需要include一個文件。比如我前段時間在寫一個框架的時候,打算用原生的php作為模板,然后寫一個display方法引入模板文件就可以,但是這只是我的意淫而已。

寫完后發現在模板中所有的變量都提示未定義。通過各種研究和查找資料,總結了include文件時的幾種情況下的作用域。

第一種情況:

A文件include B文件,在B文件中可以調用A中的變量。

A文件代碼:

 

 
  1. <?php 
  2. $aaa = '123'
  3.  
  4. include "B.php"

B文件代碼:

 

 
  1. <?php 
  2.  
  3. echo $aaa; 

可以正常輸出內容。

第二種情況:

A文件include B文件,然后在A文件中可以調用B文件的變量。

A文件代碼:

 

 
  1. <?php 
  2.  
  3. include "B.php"
  4.  
  5. echo $fff; 

B文件代碼:

 

 
  1. <?php 
  2.  
  3. $fff = 'i am f'

這個時候是可以正常輸出內容的。

第三種情況:

A文件的某個類的某個方法中調用B文件,然后在B文件中可以調用該方法中的變量。

A文件代碼:

 

  1. <?php 
  2.  
  3. class test{ 
  4. public function show(){ 
  5. $bbb = 'abc'
  6. include "B.php"
  7.  
  8. $t = new test; 
  9. $t->show(); 

B文件的代碼:

 

 
  1. <?php 
  2.  
  3. echo $bbb; 

這個時候是可以正常輸出內容的。

第四種情況:

A文件通過定義的一個函數引入B文件,在B文件中無法使用A中的變量,但是可以使用A文件中調用函數(display)中的變量。

A文件代碼:

 

 
  1. <?php 
  2. $aaa = '123'
  3.  
  4. function display($file){ 
  5. $bbb= 'asdasdas'
  6. include $file; 
  7.  
  8. display("B.php"); 

B文件代碼:

 

  
  1. <?php 
  2. echo $aaa; 
  3. echo $bbb; 

運行后$aaa提示未定義,$bbb可以正常輸出。

所以我開始準本用一個display方法來引入模板是不可行的。根據方面的三種情況,最后我選擇了寫一個類來導入模板文件。目前ThinkPHP和Smarty也都是用類來引入模板文件的。文中不足之處歡迎指正。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛扎县| 普兰县| 乐至县| 秦安县| 随州市| 和龙市| 通河县| 陆河县| 油尖旺区| 永川市| 南木林县| 巫溪县| 班戈县| 县级市| 石门县| 育儿| 比如县| 开封县| 莱芜市| 碌曲县| 桂平市| 临江市| 柞水县| 衡水市| 莱阳市| 铜川市| 大埔县| 平罗县| 石棉县| 云和县| 杭州市| 六盘水市| 乐清市| 蒙城县| 通州市| 南投县| 泰兴市| 渝中区| 长沙县| 贺州市| 井研县|