php - 无法按键获取数组元素,但数组中存在键
问题描述
我正在使用 Drupal 8,但由于这对我来说似乎是一个 PHP 问题,所以我在这里而不是在 Drupal Answers 上问它。
isset
以下代码中的语句应该 return ,TRUE
但它没有:
/*
$specifier = 'field_google_hire_identifier'
$field_storage_definitions = array of objects
*/
var_dump(
isset($field_storage_definitions[$specifier]),
$specifier,
$field_storage_definitions[$specifier],
$field_storage_definitions
);
die;
原始输出 HTML:https ://codepen.io/anon/pen/ZwRJdR
数组键:
var_dump( array_keys($field_storage_definitions));
我有点不知道为什么isset($field_storage_definitions[$specifier]
是FALSE
和$field_storage_definitions[$specifier]
是NULL
我卸载了 APC 并禁用了 Opcache。
解决方案
字符串末尾有一个从右到左的标记,用于选择数组键。由于字符串和数组键不相同,因此无法检索到数组键。
可以使用从左到右的标记删除
preg_replace('/\p{C}+/u', "", $string)
见https://stackoverflow.com/a/23131396/6653862
您可以使用以下方法检查字符串是否包含不可见字符
json_encode($string)
推荐阅读
- c++ - 为什么指针不存储和打印与它应该匹配的对象相同的数据?(C++)
- php - 如何通过ID删除数据库中的数据
- python - 如何使判断碰撞的代码成为乌龟和矩形
- python - 如何拧进度条来复制文件
- performance - 如果列表计数大于 1M,则 Schwartzian 变换不会明显更快
- javascript - JavaScript 中如何实现“数组”?
- javascript - 循环仅将最后一个元素添加到数组中
- java - 获取范围内的 Firebase 文档
- django - 将测试渲染为模板:{% static %} 不起作用
- grails - Spring security UI grails插件用户注册错误