我甚至不确定我想做的事情是否可行,我有一个简单的php回音线,如下所示..
<?php echo $T1R[0]['Site']; ?>
这很好但我想让$ T1R中的“1”变得流畅,是否可以做类似的事情。
<?php echo $T + '$row_ColNumC['ColNaumNo']' + R[0]['Site']; ?>
将1替换为ColNaumNo的内容,即返回的结果可能是..
<?php echo $T32R[0]['Site']; ?>
答案 0 :(得分:3)
可以在PHP中使用。该概念称为"variable variables"。
这个想法很简单:您生成要使用的变量名称并将其存储在另一个变量中:
$name = 'T'.$row_ColNumC['ColNaumNo'].'R';
注意string concatenation operator。 PHP为此使用了一个点(.
),而不是加号(+
)。
如果$row_ColNumc['ColNaumNo']
的值为32
,则存储在变量$name
中的值为'T32R'
;
然后,您可以使用额外的$name
添加变量$
,以将其用作另一个变量(间接)的名称。代码echo($$name);
打印变量$T32R
的内容(如果有的话)。
如果变量$T32R
存储数组,那么语法$$name[0]
是不明确的,解析器需要提示来解释它。在(变量变量的)文档页面中对此进行了详细解释:
为了将变量变量与数组一起使用,您必须解决模糊问题。也就是说,如果您编写
$$a[1]
,则解析器需要知道您是否打算将$a[1]
用作变量,或者您希望$$a
作为变量然后[1]
来自该变量的索引。解决这种歧义的语法是:第一种情况为${$a[1]}
,第二种情况为${$a}[1]
。
答案 1 :(得分:0)
你可以这样做
$T1R[0]['Site'] = "test";
$c = 1;
$a = "T".$c."R";
$b = $$a;
echo "<pre>";
print_r($b[0]['Site']);
或者像这样更简单
$T1R[0]['Site'] = "test";
$c = 1;
$a = "T".$c."R";
echo "<pre>";
print_r(${$a}[0]['Site']);