[英]Retrieving variables from included files
我有一個php文件,其中包含另一個使用include()
文件,我在包含的文件中定義了一個$something
變量,該變量將根據在包含的文件中運行的函數而變化。
現在,我想在原始文件中打印該變量,當我使用echo $something
它絕對不打印任何內容,有幫助嗎?
讓我們暫時忽略這是一個糟糕的設計選擇:)
您可能會遇到一個問題,即尚未在修改變量的函數內部將變量聲明為全局變量。
function foo()
{
global $something;
$something='bar';
}
在這方面,您將在可變范圍內找到PHP手冊頁,這對您最有幫助!
那么,為什么這是一個糟糕的設計選擇呢? 首先,檢查“全局變量不好嗎?” 回答了C ++的問題。 對於PHP來說,答案確實沒有什么不同-它可能導致無法維護和無法讀取的代碼。
但是,PHP還有另外一個(越來越多的歷史)折紙-如果啟用了“ register_globals”設置,則用戶可以通過URL查詢字符串設置全局變量。 這可能會導致各種形式的安全問題,這就是為什么現在默認將其關閉(永遠不要編寫要求將其打開的新代碼)的原因。
正如一個明智的人曾經說過的那樣:“ 全球化是通往黑暗面的道路。全球化導致憤怒。憤怒導致仇恨。仇恨導致痛苦 ” :)
您可能已經在全局范圍內聲明了變量,並試圖在功能范圍內使用它。 要解決此問題,請使用global
命令。
$myglobal = 3;
function printMyGlobal() {
global $myglobal; // will not work without this line
echo $myglobal;
}
使用get_defined_vars調試定義的變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.