PHP 7.4 – Null coalescing assignment operator

A lot of updates have come in PHP 7.4. One of them is null Coalesce Assignment Operator?? (=). This is used in combination with isset() method to replace the null Coalesce operation. This operator is used for assigning its right-hand operand value to its left-hand operand only if the left-hand operand value is null.this update you can speed up work.


// Equivalent code using ternary operator
   $username = isset($_GET['username']) ? $_GET['username'] : 'not body';
   echo $username;

// Chaining ?? operation
    $username = $_GET['username'] ?? $_POST['username'] ?? 'not body';
    echo  $username;
 

The Null Coalesce Assignment Operator(??=) can now further simplify the above sentence as follows:


$_GET['username'] ??= 'no body';
 

Difference between Null Coalescing Operator and Ternary Operator

  • Ternary Operator remains associative where as, Null Coalescing Operator is associative to the right.
  • If left operand is null, Ternary Operator throws e-notice, while null coalescing operator does not throw e-notice if left operand does not exist.
  • Ternary Operator checks if the value is valid even if the value is not null, the Null coalescing operator checks.
  • If more iteration is needed to be done, the null coalescing operator found to be quicker than the ternary operator.
  • Null coalescing operator offers comparatively improved readability as well.

Leave a Reply

Your email address will not be published. Required fields are marked *