国产探花免费观看_亚洲丰满少妇自慰呻吟_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也都是用類來引入模板文件的。文中不足之處歡迎指正。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 策勒县| 当涂县| 鹤岗市| 新河县| 蒙山县| 武平县| 常宁市| 德兴市| 绥滨县| 台南县| 庄浪县| 长葛市| 城固县| 佛坪县| 武隆县| 绥德县| 庆城县| 天全县| 奉新县| 弋阳县| 宝坻区| 壤塘县| 乌苏市| 雷州市| 灵武市| 望江县| 凭祥市| 丰台区| 六安市| 翁源县| 军事| 呼玛县| 永城市| 长沙市| 高雄市| 台东县| 襄汾县| 兴仁县| 铁岭市| 弋阳县| 社旗县|