➕ PHP Operators
Estimated reading: 3 minutes 394 views

PHP Null Coalescing Operator (??) – Complete Guide with Examples


Introduction – Why Null Coalescing Matters

When handling variables like $_GET, $_POST, or config options, you’re often unsure if a value exists or is null. Enter the null coalescing operator (??), which helps you safely access variables with a fallback default — all in one line.

In this guide, you’ll learn:

  • What the null coalescing operator is
  • How it compares to isset() and ternary ?:
  • Practical use cases with examples
  • Common pitfalls and performance benefits

What is the Null Coalescing Operator in PHP?

The ?? operator returns the first operand if it exists and is not null; otherwise, it returns the second operand.

It’s a shorthand for:

isset($var) ? $var : 'default';

But written as:

$var ?? 'default';

Syntax

$result = $value ?? 'default';

Returns:

  • $value if it exists and is not null
  • 'default' otherwise

Practical Examples

1. Fallback for Optional Input

$name = $_GET['name'] ?? 'Guest';
echo "Welcome, $name!";

Explanation:
If $_GET['name'] exists → use it.
Else → default to "Guest".


2. Shorter Alternative to isset()

$color = isset($_POST['color']) ? $_POST['color'] : 'blue';

Becomes:

$color = $_POST['color'] ?? 'blue';

Cleaner and easier to read!


3. Chained Fallbacks

$username = $input ?? $cookie ?? $default ?? 'Anonymous';

Explanation:
Use $input if available, else $cookie, then $default, finally 'Anonymous'.


4. Null vs Empty

$var = null;
echo $var ?? 'fallback';  // fallback

$var = 0;
echo $var ?? 'fallback';  // 0

Explanation:
Only null triggers fallback. 0, false, "", etc. are treated as valid.


Best Practices

  • Use ?? when you’re unsure a variable is set
  • Chain ?? for multiple fallbacks
  • Don’t confuse ?? with ||, which checks truthiness
  • Prefer ?? over isset() + ternary for readability and performance

PHP Version Compatibility

FeaturePHP Version
Null Coalescing (??)PHP 7.0+
Chained Null CoalescingPHP 7.0+

Summary – Recap & Next Steps

The null coalescing operator (??) makes defaulting logic cleaner and safer. It helps eliminate errors like “undefined index” and reduces the need for verbose isset() checks.

Key Takeaways:

  • Use ?? for default fallbacks when variables might be unset or null
  • Works great with $_GET, $_POST, config arrays, or function parameters
  • Cleaner and safer than older ternary patterns

Real-World Relevance:
Used in form handling, dynamic configuration, API requests, and routing systems.


Frequently Asked Questions (FAQs)

What does the ?? operator do in PHP?
It checks if the variable exists and is not null — if not, it returns the fallback value.

Is ?? the same as isset($x) ? $x : $default?
Yes, but shorter and cleaner.

Does ?? consider 0, false, or “” as null?
No. Only null triggers fallback. 0, false, and empty string are valid.

Can I chain multiple ?? operators?
Yes. PHP evaluates from left to right until it finds a value that is not null.


Share Now :
Share

❓ PHP Null Coalescing Operator

Or Copy Link

CONTENTS
Scroll to Top