I'm sure that some people wrote code like this, expecting it to always work in PHP:
if ($some_condition) define("HELLO", 0); if (HELLO) { var_dump("got here"); } The equivalent, relying on buggy behaviour, PHP code looks like if ($some_condition) $hello = 1; if (!$hello) { var_dump("got here"); } If preventing undefined constants wasn't a fundamental change to the language, neither is preventing undefined variables. >