我什至不确定我想要做的事情是否可行,我有一个简单的php回声线,如下所示。
<?php echo $T1R[0]['Site']; ?>
这很好用,但我想让 $T 1R 中的"1"变得流畅,是否可以做类似 ..
<?php echo $T + '$row_ColNumC['ColNaumNo']' + R[0]['Site']; ?>
其中 1 被替换为 ColNaumNo 的内容,即返回的结果可能是......
<?php echo $T32R[0]['Site']; ?>
这在 PHP 中是可能的。这个概念被称为"变量"。
这个想法很简单:你生成你想要使用的变量名称,并将其存储在另一个变量中:
$name = 'T'.$row_ColNumC['ColNaumNo'].'R';
注意字符串连接运算符。PHP 为此使用点 ( .
(,而不是加号 (+
(。
如果$row_ColNumc['ColNaumNo']
的值32
则存储在变量$name
中的值'T32R'
;
然后,您可以在变量$name
前面附加一个额外的$
,以将其用作另一个变量的名称(间接寻址(。代码echo($$name);
打印变量$T32R
的内容(如果有(。
如果变量$T32R
存储数组,则语法$$name[0]
不明确,解析器需要提示来解释它。在文档页面(变量变量的(中对此进行了很好的解释:
为了将变量变量与数组一起使用,您必须解决歧义问题。也就是说,如果您编写
$$a[1]
那么解析器需要知道您是否打算使用$a[1]
作为变量,或者您是否希望$$a
作为变量,然后是该变量的[1]
索引。解决这种歧义的语法是:第一种情况为${$a[1]}
,第二种情况为${$a}[1]
。
你可以这样做
$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']);