如果数组值中有空格,则PHP会打断该数组值
我在细枝模板中调用了一个PHP函数,如:如果数组值中有空格,则PHP会打断该数组值,php,twig,Php,Twig,我在细枝模板中调用了一个PHP函数,如: {{ test({"data":{"event":"content interactions", "action":"clicked: bookmark"}}) }} 其中,我将数组传递到PHP方法中以构建最终字符串: function test($attributes): string { $result = ''; foreach (
{{ test({"data":{"event":"content interactions", "action":"clicked: bookmark"}}) }}
其中,我将数组传递到PHP方法中以构建最终字符串:
function test($attributes): string
{
$result = '';
foreach ($attributes['data'] as $key => $value) {
$result.=' data-attr-'.$key.'='.$value;
}
return $result;
}
预期的$result
将是:
data attr action=“内容交互”data attr action=“单击:书签”
但出于某种原因,如果PHP中有空格,它就会打破$value,返回data ga event=“content”interactions=”“data ga action=“clicked:”bookmark=“”
我的问题是什么,导致空间被视为新线?如果
$value
是一个没有空格的字符串,那么整个概念非常有用,但不幸的是,我不能保证这一点。函数中缺少的双引号似乎导致了这一点。
没有它们,实际结果是
data attr event=内容交互data attr action=单击:书签
这使处理器感到困惑,因为不清楚下一个属性从何处开始,因为数据属性本身已经被空格分割了
试一试
如果将值用引号括起来会发生什么?类似于
$result.='data attr-'.$key.='.$value'.'代码>PHP是否因某种错误而中断?或者您的HTML只是没有输出您期望的结果,因为带有空格的HTML属性需要被引用?您获取数据attr action=content interactions data attr action=clicked的可能原因:bookmark-不带引号,并且您的浏览器在检查HTML时添加它
function test($attributes): string
{
$result = '';
foreach ($attributes['data'] as $key => $value) {
$result.=' data-attr-'.$key.'="'.$value.'"';
}
return $result;
}