簡體   English   中英

從包含的文件中檢索變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM