我希望PHP回显存储在变量中的字符串,紧接着是一组包含其他文本的方括号。这将进入一个将被发送回PHP的表单,因此PHP需要能够将此命令的输出解释为数组项。
以下是我尝试过的方法:
$var='string';
echo "string[0]" //works, but only because the variable isn't used
echo "$var[0]"; //PHP tries to treat the string as an array
echo "$var\[0]"; //the slash gets echoed
echo "$var[0\]"; //syntax error
echo "$var"."[0]"; //this is what I'm using now. It's very ugly and I want an alternative
有没有办法在不将字符串分成块并连接它们的情况下完成这项工作?
答案 0 :(得分:3)
以下两种方式我可以想到在单个输出语句中执行此操作,您选择的最终方式最终将适合您的个人偏好(并且可能还有其他可用的方式):< / p>
printf('%s[0]', $var);
echo $var . '[0]';
答案 1 :(得分:2)
您可以使用大括号语法。来自PHP manual documentation on Strings:
可以通过此语法包含任何具有字符串表示形式的标量变量,数组元素或对象属性。只需以与字符串外部相同的方式编写表达式,然后将其包装在
{
和}
中。由于无法转义{
,因此仅当$
紧跟{
后才会识别此语法。
用大括号括起表达式(如:{$var}
),因此PHP知道变量的开始和结束位置。
$var = 'foo';
echo "{$var}[0]"; // => foo[0]
这样,即使变量是带引号的数组索引(例如$var['foo']
),也不必担心。
答案 2 :(得分:1)
将变量以大括号语法结尾的位置显式化:
echo "{$var}[0]";