Bug #80452 [Nab]: Null Coalesce Operator Swallow warning error

From: Date: Tue, 01 Dec 2020 11:55:00 +0000
Subject: Bug #80452 [Nab]: Null Coalesce Operator Swallow warning error
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-230759@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80452&edit=1

 ID:                 80452
 User updated by:    cxlblm at gmail dot com
 Reported by:        cxlblm at gmail dot com
 Summary:            Null Coalesce Operator Swallow warning error
 Status:             Not a bug
 Type:               Bug
 Package:            *General Issues
 Operating System:   docker/ubuntu
 PHP Version:        8.0.0
 Assigned To:        cmb
 Block user comment: N
 Private report:     N

 New Comment:

Sorry, my English not good!

see https://3v4l.org/bX1Q1

According to the description of rfc(https://wiki.php.net/rfc/isset_ternary), Null Coalesce Operator
will only suppress notice message.

Accessing a scalar as an array before php8 will trigger a notice, but in php8 it will trigger a
warning!


Previous Comments:
------------------------------------------------------------------------
[2020-12-01 11:40:08] cmb@php.net

Yes, that is the whole purpose of the null coalesce operator:
<https://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.coalesce>.

------------------------------------------------------------------------
[2020-12-01 11:30:51] cxlblm at gmail dot com

Thank you for your prompt response!

https://3v4l.org/lsuFc

If there is no ?? in the sixth line of the code, a warning will be raised, but Null Coalesce
Operator is completely safe and will not raise an E_NOTICE!

------------------------------------------------------------------------
[2020-12-01 11:21:01] cmb@php.net

From looking at <https://3v4l.org/4JIAY>, this
doesn't appear to
be a bug.  The warning is raised in line 5, where the null
coalesce operator is not used.

------------------------------------------------------------------------
[2020-12-01 11:14:54] cxlblm at gmail dot com

Description:
------------
RFC Null Coalesce Operator:
This means the $_GET['mykey'] ?? "" is completely safe and will not raise an
E_NOTICE!

Test script:
---------------
$a = false;


var_dump($a['abc'] ?? '');

Expected result:
----------------
Warning: Trying to access array offset on value of type bool in /in/4JIAY
NULL



------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=80452&edit=1


Thread (6 messages)

« previous php.bugs (#230759) next »