Closed
Description
Description
The following code:
<?php
$container = [];
// Is
try {
echo "isset():\n";
var_dump(isset($container[new stdClass()]));
} catch (\Throwable $e) {
echo $e->getMessage(), "\n";
}
try {
echo "empty():\n";
var_dump(empty($container[new stdClass()]));
} catch (\Throwable $e) {
echo $e->getMessage(), "\n";
}
try {
echo "Coalesce():\n";
var_dump($container[new stdClass()] ?? 'default');
} catch (\Throwable $e) {
echo $e->getMessage(), "\n";
}
?>
Resulted in this output:
isset():
Cannot access offset of type stdClass in isset or empty
empty():
Cannot access offset of type stdClass in isset or empty
Coalesce():
Cannot access offset of type stdClass in isset or empty
But I expected this output instead:
isset():
Cannot access offset of type stdClass in isset or empty
empty():
Cannot access offset of type stdClass in isset or empty
Coalesce():
Cannot access offset of type stdClass on array
Related to #12723
PHP Version
PHP 8.3-dev
Operating System
No response