Constants With Objects¶
Global constants are allowed to use an object, starting with PHP 8.1. The object must be instantiated with only constants values, like literals and other constants.
Class constant are not allowed to use the new
keyword.
PHP code¶
<?php
const A = new stdclass();
var_dump(A);
?>
Before¶
PHP Fatal error: Constant expression contains invalid operations in /codes/constWithObjects.php on line 3
Fatal error: Constant expression contains invalid operations in /codes/constWithObjects.php on line 3
After¶
object(stdClass)#1 (0) {
}
PHP version change¶
This behavior changed in 8.1