Лично я часто использую его, чтобы предотвратить, например, исключения «неопределенный индекс» при попытке доступа к массивам.
Кроме того, я обнаружил, что использую это, чтобы проверить, содержит ли массив этот ключ. Вы найдете пример в следующем:
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.
Когда можно использовать оператор слияния, а когда нет? Можно ли использовать его таким образом или рекомендуется делать что-то подобное другим способом?
Руководство по 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.
Других решений пока нет …