PHP double question marks (Null coalescing operator) explained
PHP double question marks (??
) – officially known as Null coalescing operator – is a convenient alternative to ternary expressions in conjunction with isset()
.
🎧 Debugging Jam
Calling all coders in need of a rhythm boost! Tune in to our 24/7 Lofi Coding Radio on YouTube, and let's code to the beat – subscribe for the ultimate coding groove!" Let the bug-hunting begin! 🎵💻🚀
You might have seen the following expression in your Laravel or PHP projects:
<?php
$result = $value ?? $alternativeValue;
But what do two question marks mean in PHP?
The above expression returns its first operand ($value
) if it exists and is not null; otherwise, it returns the second operand ($alternativeValue
).
The above expression is equivalent to:
<?php
$result = isset($value) ? $value : $alternativeValue;
How to use PHP double question marks
Before the Null coalescing operator, you'd have to use a ternary operator with a call to isset()
:
<?php
$iceCreamFlavor = isset($_POST['flavor']) ? $_POST['flavor'] : 'vanilla';
Or as an if
statement:
<?php
$iceCreamFlavor = 'vanilla';
if (isset($_POST['flavor'])) {
$iceCreamFlavor = $_POST['flavor'];
}
But with the Null coalescing operator, you can summarize it into:
<?php
$iceCreamFlavor =$_POST['flavor'] ?? 'vanilla';
You can also chain multiple operators:
<?php
$display_name = $first_name ?? $last_name ?? 'Anonymous';
The above code will return the first defined value among $first_name
, $last_name
, and Anonymous
.
The Null coalescing operator has been added to PHP since version 7.
I hope this quick guide gave you the answer you were looking for.
Thanks for reading!
Never miss a guide like this!
Disclaimer: This post may contain affiliate links. I might receive a commission if a purchase is made. However, it doesn’t change the cost you’ll pay.