Bug #16223 Updated: Nested If block not execute correctly
| From: | daniel@php.net | Date: | Fri, 22 Mar 2002 18:49:43 +0000 |
| Subject: | Bug #16223 Updated: Nested If block not execute correctly | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-3158@lists.php.net to get a copy of this message | ||
ID: 16223
Updated by: daniel@php.net
Reported By: amin.javanbakht@openwave.com
Status: Bogus
Bug Type: *Regular Expressions
Operating System: SUN
PHP Version: 4.1.2
New Comment:
What is $name supposed to be? Your examples (!= or ==) are applying a
completely different logic.
$name = "foo";
If $name is not "test1" => TRUE
This Condition breaks at this point. The second condition is never
executed.
Consider the following Script:
-------------------------------------------
<?php
function first() {
echo "first<br>\n";
return true;
}
function second() {
echo "second<br>\n";
return true;
}
if(first() || second())
echo "YES<br>\n";
else
echo "NO<br>\n";
?>
-------------------------------------------
The output is NOT "first, second, YES" as you might think. It is
"first, YES".
The || operator checks whether either the left condition or the right
condition returns true. If the left condition is true, the right
condition is not anymore checked.
Daniel Lorch
Previous Comments:
------------------------------------------------------------------------
[2002-03-22 13:26:06] amin.javanbakht@openwave.com
>>If the fruit is not blue or the fruit is not red, do something.
The problem is when the fruit is blue, it still return true, but it has
to return false
------------------------------------------------------------------------
[2002-03-22 13:20:45] rasmus@php.net
Logic 101
If the fruit is not blue or the fruit is not red, do something.
Since the fruit can only be one colour, that logic will always return
true.
------------------------------------------------------------------------
[2002-03-22 13:11:33] amin.javanbakht@openwave.com
if ( ( $name != "test1" ) || ( $name != "test2" ) )
does not work properly.
if I Do each condition seperately, it works but If I join them using
|| then this never works
however this works fine
if ( ( $name == "test1" ) || ( $name == "test2" ) )
it seems like the problem occurs only with "!=" condition
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=16223&edit=1