Intereting Posts

Для чего используется оператор «Null coalesce» (??)?

С выпуском новой версии PHP, PHP 7, появляются новые функции. среди этих новых функций есть оператор, с которым я не знаком. Оператор Null coalesce operator .

Что это за оператор и какие хорошие варианты использования?

    Вы можете использовать его для инициализации переменной, которая может быть нулевой

    The ?? оператор называется нуль-коалесцирующим оператором. Он возвращает левый операнд, если операнд не равен нулю; в противном случае он возвращает правый операнд.

    Источник: https://msdn.microsoft.com/nl-nl/library/ms173224.aspx

    (не зависит от языка)

    Случай использования

    Ты можешь написать

     $rabbits; $rabbits = count($somearray); if ($rabbits == null) { $rabbits = 0; } 

    Вы можете использовать более короткие обозначения

     $rabbits = $rabbits ?? 0; 

    Согласно Руководству PHP:

    Оператор нулевой коалесценции (??) был добавлен в качестве синтаксического сахара для общего случая необходимости использования тройного соединения в сочетании с isset (). Он возвращает свой первый операнд, если он существует, и не является NULL; в противном случае он возвращает свой второй операнд.

     // 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'; // Coalesces can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; 
     $username = $_GET['user'] ?? 'nobody'; 

    такое же, как

    $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

    ?? это тройная стенография