php - 如果值中有空格,PHP 会破坏数组值
问题描述
我有一个在 Twig 模板中调用的 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="content interactions" data-attr-action="clicked: bookmark"
但由于某种原因,如果 $value 中有空格,PHP 会破坏它,返回data-ga-event="content" interactions="" data-ga-action="clicked:" bookmark=""
我的问题是什么,导致空格被视为新行?如果$value
是一个没有空格的字符串,那么整个概念就很好用——但不幸的是,我不能保证这一点。
解决方案
您的函数中缺少双引号似乎导致了这种情况。没有它们,实际结果是
data-attr-event=content interactions data-attr-action=clicked: bookmark
这使处理器感到困惑,因为不清楚下一个属性从哪里开始,因为它们自己的数据属性已经被空格分隔
尝试
function test($attributes): string
{
$result = '';
foreach ($attributes['data'] as $key => $value) {
$result.=' data-attr-'.$key.'="'.$value.'"';
}
return $result;
}
推荐阅读
- javascript - 使用 catch 是否需要 throw
- reactjs - 使用 NextJS 和 next-routes,如何处理来自 server.js 和客户端的 404
- python - 无法在python中声明时间对象
- hive - 使用两列中的值查找日期范围之间的总和
- html - 主滑块文本在移动设备上无响应
- delphi - BDE 会话文件从 Temp 文件夹中消失
- javascript - TextInput 更新和状态修改缓慢
- git - 如何区分重新换行的内容?
- vba - 单个模块无法识别变量
- java - Google Cloud Compute 上的 Firestore PERMISSION_DENIED