isset() On Constants

Until PHP 7.0, it was not possible to use isset() on a constant. PHP mistook it with an expression, and stopped.

Since PHP 7.0, it is possible to use isset() with a constant, in particular with the array syntax or the object syntax. Still, isset() should not be used to check the existence of the constant: rather, there is the native function defined().

PHP code

<?php
const X = [1,2,3];

if (isset(X[4])) {
    echo 'set';
} else {
    echo 'not set';
}
?>

Before

PHP Fatal error:  Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in /codes/issetWithConstant.php on line 4

Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in /codes/issetWithConstant.php on line 4

After

not set

PHP version change

This behavior changed in 7.0