这种情况很奇怪,我甚至不知道该怎么叫它(因此找不到任何以前的帖子)。
我传入了一个字符串作为函数的变量,然后尝试将其连接成另一个字符串:
function saveFunction($number){
$myStr = "drawer-$number[]";
return $myStr;
}所以输出应该是:
saveFunction("2")
"drawer-2[]"但是,因为它认为我使用括号将$number作为数组访问,所以输出是:
"0"我甚至试过这个:
function saveFunction($number){
$myStr = "drawer-$number";
return $myStr + "[]";
}得到了同样的结果。
有什么建议吗?
发布于 2014-11-28 07:29:18
PHP中的双引号是很棘手的。他们解释字符串。这就是为什么"drawing-$number"首先要工作的原因。
有时你的字符串不适合自动解释。您可以使用always safe连接:
return "drawer-" . $number . "[]";或者使用{}来帮助自动检测:
return "drawer-{$number}[]"; // as opposed to: "drawer-{$number[]}"或者使用sprintf
return sprintf("drawer-%s[]", $number); // %s because $number is actually a string, not an int发布于 2014-11-28 07:29:23
您可以将变量与字符串连接起来,如下所示:
<?php
function saveFunction($number){
return $myStr = "drawer-" . $number . "[]";
}
echo saveFunction("2");
?>输出:
drawer-2[] 有关更多信息,另请参阅:http://php.net/manual/en/language.operators.string.php
https://stackoverflow.com/questions/27179938
复制相似问题