2012-08-02 290 views
-2
$var1 = 'First Variable'; 
$var2 = 'Second Variable'; 
$var3 = 'Third Variable'; 

$number = 2; 

$variable_to_get = 'var'.$number; 

讓我們假設你想根據$ number來回顯一個變量;例如在這種情況下,$ number是2,所以我們想要回顯$ var2。如何在不使用switch語句/ ifs的情況下執行此操作;只是直接命名一個變量並顯示結果?PHP動態命名和訪問變量

+2

爲什麼不使用數組? – lusketeer 2012-08-02 01:56:27

+0

只是使用一個數組,這對我來說是最簡單的。刷新你的記憶[PHP數組] – lusketeer 2012-08-02 02:06:12

回答

3

變量變量

echo ${'var'.$number}; 
1

不確定,大括號可能? $ {「變種」。$號}只是一個猜測

0
$var = array('First Variable','Second Variable','Third Variable'); 


$variable_to_get = 'var'.$var[0]; // returns First Variable 

$variable_to_get = 'var'.$var[1]; // returns Second Variable 
0

您可以使用雙$$訪問變量名作爲第二個變量的字符串。 第二個訪問的變量字符串,以及第一次訪問命名爲字符串變量:

$foo = 'bar'; 
$bar = 'foo'; 

echo $$foo; // echoes foo 

意義,你的情況:

$var1 = 'First Variable'; 
$var2 = 'Second Variable'; 
$var3 = 'Third Variable'; 

$number = 2; 

$variable_to_get = 'var'.$number; //will contain the string 'var2' 

echo $$variable_to_get; //echoes 'Second Variable' 
1

你最好使用數組。

$var = array(
    'first variable', 
    'second variable', 
    'third variable', 
); 

所以,你將有你的$var這樣的:

array (
    [0] => 'first variable', 
    [1] => 'second variable', 
    [2] => 'third variable', 
) 

然後得到的值:

$variable_to_get = $var[$number-1]; 

$number應爲-1,因爲數組開始索引0

另一種方法,您可以直接指定其索引。

$var[1] = 'first variable' 
$var[2] = 'second variable' 
$var[3] = 'third variable' 

但是,如果你真的想你訪問使用

$var1 = 'First Variable'; 
$var2 = 'Second Variable'; 
$var3 = 'Third Variable'; 

$number = 2; 

$variable_to_get = 'var'.$number; 

嘗試使用eval