【发布时间】:2019-02-12 15:35:07
【问题描述】:
我正在使用 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。
【问题讨论】:
-
$field_storage_definitions[$specifier]为 NULL - 是不是出乎意料? -
@Orlando 尝试运行 var_dump(array_keys($field_storage_definitions));
-
请检查
$specifier的真实内容——根据该变量的第一次转储,它包含一个31个字符的字符串,而字符串field_google_hire_identifier显然包含只有 28 个字符 -
您是否检查过
var_dump不会显示的隐藏字符? -
@NicoHaase 非常感谢您的帮助。现在我知道问题出在哪里,以及要注意什么。输入字符串很好,但是在某个地方添加了从右到左的标记。必须深入研究发生这种情况的地方。但这超出了这个问题的范围。
标签: php drupal-8 drupal-fields