Trying to use undefined properties in PHP stdClass objects gives you a "warning" as of PHP 8 (it used to be a "notice" that, being realistic, you ignored).

One way to fix code that looks like the following is to use the new "null coalescing" operator (??):

$a = new stdClass;
$a->first = 1;

// This will give you a warning
$b = array($a->first, $a->second ?: NULL);

// This is fine
$c = array($a->first, $a->second ?? NULL);

For the $b line, you get these logs in the different versions of PHP:

Output for 8.0.0 - 8.0.3
Warning: Undefined property: stdClass::$second in /in/DsRb2 on line 6

Output for 5.3.0 - 7.4.16
Notice: Undefined property: stdClass::$second in /in/DsRb2 on line 6
Previous on PHP
Mastodon Mastodon