我理解PHP中變量變量的概念。 據我變量變量在PHP下面的代碼的理解:PHP變量對象屬性
$foo = 'hello';
$$foo = 'world';
echo $foo . ' ' . $hello;
將產生輸出:
Hello World
但我發現很難理解變量對象的情況下,屬性
說我有一個名爲foo的類,其屬性如下:
class foo {
var $r = 'I am r.';
}
現在,創建類foo的實例,並使用變量變量下面的代碼的概念:
$foo = new foo();
$bar = 'r';
echo $foo->$bar;
將輸出:
I am r.
截至一切都很好,但是當我包含一個具有數組值的屬性時,它會讓我感到困惑。 說,例如,我想補充另一個屬性與數組值的類Foo如今類的樣子:
class foo {
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
現在當我創建類Foo的實例,並且嘗試讀取屬性$的常用3 [1]如下:
$arr = 'arr';
echo $foo->$arr[1];
,其輸出:
I am r.
和輸出看起來很奇怪。我的意思是$ foo - > $ arr [1]如何在類foo中解析爲properry $ r?
不應該做$ FOO - > $編曲解析爲$ foo->改編 [1](注:沒有美元符號)給出的輸出:
I am B.
如何這是否發生?
我知道做$ foor {$ arr} [1]輸出「我是B」。
我的問題是爲什麼$ foo - > $ arr沒有解析爲$ foo-> arr?假設變量$ arr持有值'arr'?
給管理員/主管的說明:這個問題不是重複的;我試圖尋找類似的問題,但沒有回答我需要知道的問題。
只是想發佈相同的東西 - http://ideone.com/7s8stM –
非常酷的網站,@KarolyHorvath。這裏是我的完整答案的概念證明:http://ideone.com/VGmLP8 – Kromey
我知道你使用大括號提供的解決方案,我也已經在我的問題中提到了它。 而你的回答節省了我很多時間。非常感謝你。 我試着接受答案,但堆棧溢出說我不能接受4分鐘內的答案。再次感謝你的隊友。 – mystic