Bug #74188 [Ver]: Null coalescing operator fails for undeclared static class properties & constant

From: Date: Mon, 27 Mar 2017 19:11:58 +0000
Subject: Bug #74188 [Ver]: Null coalescing operator fails for undeclared static class properties & constant
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-208097@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74188&edit=1 ID: 74188 Updated by: tpunt@php.net Reported by: pandenitz at mail dot ru Summary: Null coalescing operator fails for undeclared static class properties & constant Status: Verified Type: Bug Package: Variables related Operating System: Win 7 64 PHP Version: 7.0.16 Assigned To: tpunt Block user comment: N Private report: N New Comment: The null coalescing operator should not be used to check whether a constant has been defined or not - that's what the defined() function is for. Previous Comments: ------------------------------------------------------------------------ [2017-03-27 08:10:43] pandenitz at mail dot ru Same for class constants. ------------------------------------------------------------------------ [2017-03-01 17:05:48] pandenitz at mail dot ru I guess it's same in PHP 7.1 ------------------------------------------------------------------------ [2017-03-01 07:42:17] pandenitz at mail dot ru Description: ------------ Null coalescing operator doesn't check isset() for static properties Test script: --------------- abstract class Test { public static function get() { return static::$test ?? true; } public static function get2() { return isset(static::$test) ? static::$test : true; } } // Access to undeclared static property Test::get(); // Works Test::get2(); Expected result: ---------------- No errors Actual result: -------------- Error ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74188&edit=1

« previous php.bugs (#208097) next »