我正在使用Drupal 8,但是由于这对我来说似乎是一个PHP问题,所以我在这里而不是在Drupal Answers上问它。
以下代码中的isset
语句应返回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。
答案 0 :(得分:1)
在字符串的末尾有一个right to left mark,用于选择数组键。由于字符串和数组键不相同,因此无法检索数组键。
可以使用删除从左到右的标记
preg_replace('/\p{C}+/u', "", $string)
请参见https://stackoverflow.com/a/23131396/6653862
您可以通过使用
检查字符串是否包含不可见的字符json_encode($string)
答案 1 :(得分:-3)
如果我是你,我会尝试以下方法:
"xxx_456".substr(-3)