2010-08-27 128 views
3

我在這一點上有點掙扎,並希望得到一些幫助。OOP中的變量變量

在PHP變量,變量可以很容易地像這樣

$a = "myVar"; 
$$a = "some Text"; 
print $myVar; //you get "some Text" 

現在定義的,我怎麼做,在一個OOP環境?我試過這個:

$a = "myVar"; 
$myObject->$a = "some Text"; //I must be doing something wrong here 
print $myObject->myVar; //because this is not working as expected 

我也試過$myObject->{$a} = "some Text"但它也沒有工作。所以我一定在某個地方弄錯了。

感謝您的幫助!

+1

「可變的變量可以很容易地定義爲」 請避免使用核武器(OOP中或其他)。您可以稍後感謝我。 – NullUserException 2010-08-27 06:57:57

+0

我知道你的意思,實際上很少使用它們。現在我遇到了一個合理的情況。 – sprain 2010-08-27 07:11:29

+1

如果你使用變量變量,那麼你不明白OOP – 2010-08-27 07:18:22

回答

2

這個工作對我來說:

class foo { 
    var $myvar = 'stackover'; 
} 

$a = 'myvar'; 
$myObject = new foo(); 
$myObject->$a .= 'flow'; 
echo $myObject->$a; // prints stackoverflow 
+0

謝謝!我實際上是在做正確的,錯誤是在其他地方,我忘記訪問'$ myObject - > $ a',但試圖直接獲得'$ a'。 – sprain 2010-08-27 07:14:18

2

這應該工作

class foo { 
    var $myvar = 'stackover'; 
} 

$a = 'myvar'; 
$myObject = new foo(); 
$myObject->$a = 'some text'; 
echo $myObject->myvar;