PHP中字符串内直接插入数组值报错,如何替代拼接写法?
在PHP双引号字符串中直接插入数组值的正确方式
当然可以直接在字符串里插入数组值啦!你原来的写法报错是因为PHP在解析双引号字符串时,对带引号的数组键名的解析逻辑会出问题——它会把$array['0']拆成$array加上['0'],直接导致语法错误。
这里有两种靠谱的写法能解决这个问题,完全不用拼接字符串:
去掉数字键名的引号:如果数组的键是数字,直接写下标就行,PHP能正确识别这个变量:
$array = array("text"); echo "text $array[0]";用大括号包裹数组表达式:这是更通用的方法,不管键是数字还是字符串都能用,大括号能明确告诉PHP要解析的完整变量范围:
$array = array("text"); echo "text {$array['0']}"; // 或者不带引号也可以 echo "text {$array[0]}";
举个关联数组的例子,这种写法同样生效:
$user = array("name" => "Bob", "age" => 28); echo "Hi, I'm {$user['name']}, and I'm {$user['age']} years old.";
这样写既不用麻烦的字符串拼接,代码也更简洁易读!
内容的提问来源于stack exchange,提问作者afdrd25
相关产品推荐
相关产品推荐

