Edit report at https://bugs.php.net/bug.php?id=74188&edit=1
ID: 74188
Updated by: [email protected]
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.