1

我在编写一些语法时遇到了一些麻烦。我想回应这个

'location_1' => $location_1,

然而,事情并不像看起来那么简单。当我编写 echo 语句时,整数 1 必须是变量 $z。这是我尝试编写的代码

echo "'location_' . $z . '' =>' . ${'location_' . $z} . ','";

这是它输出的

'location_' . 1 . '' =>' . something . ','

$location_1 等于字符串 something。我不知道如何以正确的方式做到这一点。任何关于描述这种语法如何工作的指南也将是一个重要的帮助,所以我可以完全理解它。

4

5 回答 5

2

您可以直接将变量写入双引号字符串,请参阅http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

echo "'location_$z' => \$location_$z,";

您可能还想阅读其余的字符串文档

于 2012-08-05T03:53:42.160 回答
1

这是一种方法:

echo "'location_$z' => \$location_$z,";

您需要转义 $ 符号。在这种情况下,双引号表示要回显的内容,而单引号实际上会得到回显。

于 2012-08-05T03:48:09.467 回答
1

一种方法是:echo "'location_{$z}' => \$location_{$z},";

编辑:这是你的意思吗?

<?php
$z = 1;
$location_1 = 'something';
echo "'location_$z' => " . ${'location_'. $z} . ',';

产生:'location_1' => something,

为什么不将这些变量存储在数组中以便于访问。就像是:

$locations = array('location_id' => 'location_name');
于 2012-08-05T03:48:19.443 回答
1

这是回声文档的链接(请参阅示例,我认为它们很好地描述了它的工作原理)

于 2012-08-05T03:48:31.113 回答
1

您可以将其分成两行并获得预期的输出。

例如:

$var_location = "$". "location". $z;

echo "'location_" . $z . "' =>'" . $var_location . "','";
于 2012-08-05T03:53:05.157 回答