2014-03-05 111 views
1

有什么可能使这种使用PHP的东西?如何设置变量为字符串?

<?php 

$number = 1; 

$str_$number = "BlahBlah"; 

// and make this: $str_1 = "BlahBlah"; 

echo $str_1; 

?> 
+0

你不使用阵列的任何原因? – Populus

+2

,因为他不想要一个数组,他想要动态变量名。这部分看起来很清楚? –

+0

是的,动态变量名称。 –

回答

2
<?php 
$number = 1; 
${'str_'.$number} = 'foobar'; 
echo $str_1;//foobar 
+0

是的,最有效率的。 –

+0

像一个魅力工作,谢谢! –

1

尝试

<?php 
$number = 1; 
${'str_' . $number} = 'foobar'; 
?> 
+0

不似乎工作,如果我尝试echo $ str_1,我得到一个空白页:( –

+0

不在这里工作。 – Ultimater

+0

当然它不会。即使大括号存在变量名称,他们必须从美元符号不解析错误,像'$ {$ number}' –

1
<?php 
$number = 1; 
$value = 'str_' . $number; 
$$value = 'blahblah'; 
echo $str_1; 
?> 
+0

Felix很好,虽然可能值得注意的是$$使变量值变成一个变量。他想要的只是它是如何完成的,值得注意的是我认为... –

0

您也可以尝试

$number = 1; 
eval('$str_'.$number.' = "foobar";'); 
echo $str_1; 
+0

哦,很好的黑客。不知道'eval()'。风险虽然.. –

+1

是的,它是有风险的,我只是说这是另一种方式;因为在这种特定情况下,它不会从_GET,_POS T等等,这就是为什么他也可以试试这个。 – Javad