Earlier this month PHP 7.0.0 Alpha 1 was released. One item on the feature list caught my eye:
The null coalescing operator (??)
The background is at https://wiki.php.net/rfc/isset_ternary. In short it “returns the result of its first operand if it exists and is not NULL, or else its second operand”. It does this without triggering E_NOTICE
.
A short example:
[sourcecode lang=”php”]
$action = $_GET[‘action’] ?? ‘none’;
// The same as: $action = isset($_GET[‘action’]) ? $_GET[‘action’] : ‘none’;
[/sourcecode]
I’m happy to see this make it into PHP 7.
First warning though, it may not always work the way you would expect it to. Specifically, $action = null ?? 'none';
results in $action
being 'none'
. But $action = false ?? 'none';
results in $action
being false
.
Second warning is that HHVM does not currently support the ??
operator. HHVM issue 4166 brings that up, but the last comment is from November 2014.
2 replies on “PHP, Null Coalescing Operator”
This makes me so happy…
I wonder why 3 people voted against it in the RFC. Seems like something PHP should have added a long time ago.