Bug #79604 [Nab]: OR and || returning different results with arrays
| From: | shariefjamiel at gmail dot com | Date: | Fri, 15 May 2020 17:54:42 +0000 |
| Subject: | Bug #79604 [Nab]: OR and || returning different results with arrays | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-227063@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79604&edit=1
ID: 79604
User updated by: shariefjamiel at gmail dot com
Reported by: shariefjamiel at gmail dot com
Summary: OR and || returning different results with arrays
Status: Not a bug
Type: Bug
Package: Arrays related
Operating System: mac/ubuntu
PHP Version: 7.4Git-2020-05-15 (Git)
Block user comment: N
Private report: N
New Comment:
Please delete my comment that i got my script wrong, its right. Sorry for confusion.
Previous Comments:
------------------------------------------------------------------------
[2020-05-15 17:38:42] shariefjamiel at gmail dot com
ignore this been a long day, i think got my test script wrong.
------------------------------------------------------------------------
[2020-05-15 17:04:44] shariefjamiel at gmail dot com
Description:
------------
I noticed the OR operator was not working properly with a value inside an array,
Test script:
---------------
/**
* PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS )
* PHP 7.4.5 (cli) (built: Apr 23 2020 02:25:56) ( NTS )
* @see https://www.php.net/manual/en/language.operators.logical.php
*/
$array = [
'a' => 'php',
'b' => false
];
# EXPECTED BEHAVIOR
$check = $array['b'] === true || $array['a'] === 'php'; //
should and is true
var_dump($check);
# ACTUAL RESULT
$check = $array['b'] === true or $array['a'] === 'php'; //
should be true
var_dump($check);
# START SANITY CHECKS
# Sanity Check 1
var_dump(true === true or 'php' === 'php'); // should be and is true
# Sanity Check 2
$a = true;
$b = 'php';
var_dump($a === true or $b === 'php'); // should be and is true
Expected result:
----------------
bool(true)
bool(true)
bool(true)
bool(true)
Actual result:
--------------
bool(true)
bool(false)
bool(true)
bool(true)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=79604&edit=1