Я работаю с Drupal 8, но так как это выглядит для меня проблемой PHP, я спрашиваю об этом здесь, а не о Drupal.
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.
Был знак справа налево в конце строки, которая использовалась для выбора ключа массива. Поскольку строка и ключ массива не совпадают, ключ массива не может быть получен.
Метка слева направо может быть удалена с помощью
preg_replace('/\p{C}+/u', "", $string)
Увидеть https://stackoverflow.com/a/23131396/6653862
Вы можете проверить, содержит ли строка невидимые символы, используя
json_encode($string)
На вашем месте я бы попробовал это:
$true_Array = (Array)$array_With_Object;