Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果数组值中有空格,则PHP会打断该数组值_Php_Twig - Fatal编程技术网

如果数组值中有空格,则PHP会打断该数组值

如果数组值中有空格,则PHP会打断该数组值,php,twig,Php,Twig,我在细枝模板中调用了一个PHP函数,如: {{ test({"data":{"event":"content interactions", "action":"clicked: bookmark"}}) }} 其中,我将数组传递到PHP方法中以构建最终字符串: function test($attributes): string { $result = ''; foreach (

我在细枝模板中调用了一个PHP函数,如:

{{ 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;
}