Nullsafe Operator in PHP 8

PHP 8 introduces the nullsafe operator (?->) as a cleaner alternative to null check conditions. Using the nullsafe operator, we can safely chain method calls and property accesses without worrying about null values causing fatal errors.

When the left-hand side of the nullsafe operator evaluates to null, the entire chain of execution stops and returns null. If it does not evaluate to null, it behaves like a normal object operator (->).

Syntax

The nullsafe operator uses the syntax ?-> instead of the regular -> operator −

$object?->method()?->property?->anotherMethod();

Example

Here's a basic example demonstrating the nullsafe operator in action −

<?php
class Employee {
    public function getDepartment() {
        return null; // Simulating null return
    }
}

class Department {
    public function getAddress() {
        return "123 Main Street";
    }
}

$emp = new Employee();

// Using nullsafe operator
$address = $emp?->getDepartment()?->getAddress();
var_dump($address);

echo "<br>";

// For comparison, without nullsafe operator this would cause an error:
// $address = $emp->getDepartment()->getAddress(); // Fatal error!
?>
NULL

Chaining with Mixed Operators

You can mix nullsafe operators with regular operators in the same chain −

<?php
class User {
    public $profile;
    
    public function __construct() {
        $this->profile = new Profile();
    }
}

class Profile {
    public $settings = null;
    
    public function getEmail() {
        return "user@example.com";
    }
}

$user = new User();

// Mixed chain: regular -> and nullsafe ?->
$email = $user->profile?->getEmail();
$theme = $user->profile?->settings?->theme;

echo "Email: " . $email . "<br>";
echo "Theme: ";
var_dump($theme);
?>
Email: user@example.com
Theme: NULL

Key Points

  • The nullsafe operator short-circuits on the first null value encountered
  • It works with both method calls and property access
  • Can be chained multiple times in a single expression
  • Prevents "Call to a member function on null" fatal errors

Conclusion

The nullsafe operator in PHP 8 provides a clean and safe way to handle object chains that might contain null values. It eliminates the need for verbose null checks and makes code more readable and maintainable.

Updated on: 2026-03-15T09:42:52+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements