PHP мелочи здесь.
Если мы объявим массив следующим образом:
<?php $arr = [ 'foo' => 'bar', NULL => 'hello' ]; ?>
Мы можем получить к нему доступ
print $arr[NULL];
Это напечатает hello
. Почему это полезно, актуально или необходимо? Это ошибка PHP или функция?
Моя единственная идея заключалась в том, что вы могли объявить массив с ключом NULL равным сообщению об ошибке, чтобы объяснить всем, кто использует ключ NULL, что их ключ равен null:
$arr[NULL] = 'Warning you have used a null key, did you mean to?';
Кто-нибудь нашел это полезным? Кажется, это что-то, что приносит больше вреда, чем пользы.
Цитата из руководства :
Null будет передан в пустую строку, т. Е. Нулевой ключ будет фактически сохранен под "".
Дополнительные сведения о том, как используются клавиши, заключаются в следующем:
Ключ может быть целым числом или строкой. Значение может быть любого типа.
Кроме того, будут выполняться следующие нажатия клавиш:
- Строки, содержащие действительные десятичные целые числа, если только номер не предшествует знаку +, будут отлиты от целочисленного типа. Например, ключ «8» будет фактически сохранен под 8. С другой стороны, «08» не будет выбрано, так как это не допустимое целое число.
- Поплавки также отливаются от целых чисел, что означает, что дробная часть будет усечена. Например, ключ 8.7 будет фактически сохранен под 8.
- Bools также отлиты от целых чисел, т. Е. Ключ true будет фактически сохранен под 1 и ключ false под 0.
- Null будет передан в пустую строку, т. Е. Нулевой ключ будет фактически сохранен под "".
- Массивы и объекты не могут использоваться в качестве ключей. Это приведет к предупреждению: тип недопустимого смещения.
Что касается этого быть полезным или необходимым, это спорно. Вас попросят использовать целые или строковые ключи, и вы были предупреждены о неявном ключевом литье.
Я нашел возможность использовать ключи Null при доступе к db, используя класс, который может использовать одно из значений столбца в качестве ключа к возвращенному массиву. Некоторые значения столбцов могут быть нулевыми.
Учитывая API формы, заполненный ассоциативным массивом php, я нашел полезным использовать значение с нулевым ключом, чтобы указать значение NULL в базе данных. Например:
$this->addElement('select', 'foreignkey_id', array( 'label'=>'Add a Poll', 'multiOptions' => array( null => 'No value selected', '0' => 'Element with ID0 selected' ) ));
В этом случае null отображает значение NULL (по умолчанию) в столбце базы данных foreignkey_id и 0 в строку с ключом 0.
Тем не менее, вне этой конкретной статьи, я склонен думать, что комментарий DCoder является авторитетным здесь …