Является ли нуль-коалесцирующий оператор хорошей вещью? - PullRequest
0 голосов
/ 28 сентября 2018

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

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

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.

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

1 Ответ

0 голосов
/ 28 сентября 2018

В руководстве по PHP для ОПЕРАТОРА NULL COALESCING приведен аналогичный пример:

<?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.

...