2012-08-02 146 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