2010-08-14 64 views
2

非常感謝您的幫助。 :)
好的,這是我的問題。
代碼的簡化版本:
全球空間包括文件帶有嵌套包含的PHP變量作用域由函數返回

包括其中$ VAR的定義和函數被調用的文件,返回一個包含語句
包括文件的功能,並在返回$ var爲無更容易訪問

爲什麼$ var不能訪問?

我懷疑它與該功能有關,或者我可能缺少其他東西。 功能如下:

function blah() { 
return include_once 'filename.php'; 
} 

回答

3

按設計工作。將代碼想象爲包含不在那裏:你在一個函數中,它有自己的範圍。全局變量不能在那裏訪問。

您的選擇:

  • 傳遞變量作爲參考blah(&$variable)

  • 導入使用global $varname

  • 如果你在PHP 5.3,使用從全局空間變量新closure功能

  • 使用花哨的O OP構造如靜態類,單例或依賴注入(可能矯枉過正)

+1

或者返回一個包含所有想要「導出」的值的數組。 – VolkerK 2010-08-14 17:46:13

+0

@VolkerK yup,或者那個。 – 2010-08-14 17:47:30

+0

感謝球員,我改變了功能,只是返回文件,而不是整個包括聲明,簡單的解決方案 - 我多麼喜歡它:) – Karl 2010-08-14 18:12:09