Bug #77845 [Com]: Error in the comparaison
| From: | baklouti dot med at gmail dot com | Date: | Thu, 04 Apr 2019 14:34:18 +0000 |
| Subject: | Bug #77845 [Com]: Error in the comparaison | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-220319@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=77845&edit=1
ID: 77845
Comment by: baklouti dot med at gmail dot com
Reported by: baklouti dot med at gmail dot com
Summary: Error in the comparaison
Status: Not a bug
Type: Bug
Package: *Compile Issues
Operating System: ubuntu 18.04
PHP Version: 7.2.16
Block user comment: N
Private report: N
New Comment:
Yes, I try it with "case 0:" , and the same issue is happening.
Previous Comments:
------------------------------------------------------------------------
[2019-04-04 11:21:37] kalle@php.net
Because
($id === 0) is evaluated as an expression before, meaning that essentially the
case statement now looks like case 1:. The correct way to do that which
you are trying to would be to make your case statement simply look like case 0:.
Please refer to the documentation int the future:
https://www.php.net/manual/en/control-structures.switch.php
------------------------------------------------------------------------
[2019-04-04 11:10:25] baklouti dot med at gmail dot com
Description:
------------
I am testing the value of $id to do some processing. I retrieve the variable $id from an array
($test) and converted to integer, for the case that $id = 0 when using "switch" it
can't be detected and if I used the "if" it is working fine.
I tried with the "==" and the "===" and also not working with
"switch".
I am not using the two cases in the same time, i tested the "if" and "switch"
separately.
$id = (integer)$test['id'];
if ($id === 0 ) {return 1;}
switch ($id) {
case ($id === 0):
return 2;
....
Expected result:
----------------
The expected result is the bloc inside the case ($id ===0) is processed.
Actual result:
--------------
The actual result that it is passed for another case.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77845&edit=1