Является ли оператор с нулевым слиянием хорошей вещью?

Лично я часто использую его, чтобы предотвратить, например, исключения «неопределенный индекс» при попытке доступа к массивам.

Кроме того, я обнаружил, что использую это, чтобы проверить, содержит ли массив этот ключ. Вы найдете пример в следующем:

function getValue($key)
{
return $this->array[$key] ?? null;
}

// ---

if (!$object->get('key'))
// Do something when the array doesn't contain that key or the value is empty.

Когда можно использовать оператор слияния, а когда нет? Можно ли использовать его таким образом или рекомендуется делать что-то подобное другим способом?

0

Решение

Руководство по PHP для NULL COALESCING OPERATOR перечисляет похожий пример:

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Поэтому я предполагаю, что это безопасно использовать таким образом.

Когда можно использовать оператор слияния, а когда нет?

Можно использовать его, когда вам не нужно различать значение NULL и значение UNDEFINED, и вы можете обращаться с ними одинаково, как если бы они оба были NULL.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]