Bug #54576 [Opn->Bgs]: or is différent of true

From: Date: Wed, 20 Apr 2011 16:49:41 +0000
Subject: Bug #54576 [Opn->Bgs]: or is différent of true
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-160306@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=54576&edit=1

 ID:                 54576
 Updated by:         dtajchreber@php.net
 Reported by:        dungar at kabia dot fr
 Summary:            or is différent of true
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Unknown/Other Function
 Operating System:   debian
 PHP Version:        5.3.6
 Block user comment: N
 Private report:     N

 New Comment:

The ternary binds closer than the or operator. What you're actually
running is:
var_dump(false or (false ? 'true' : 'false'));

So here's a different view:

var_dump((bool)'false'); /* true */
var_dump(false or (false ? 'true' : 'false')); /* false or true */
var_dump(false or false ? 'true' : 'false'); /* true */

[1] http://php.net/manual/en/language.operators.precedence.php
[2] http://us2.php.net/manual/en/language.types.boolean.php


Previous Comments:
------------------------------------------------------------------------
[2011-04-20 16:02:00] dungar at kabia dot fr

Description:
------------
var_dump(false or false ? 'true' : 'false');
=> boolean true

Test script:
---------------
var_dump(false or false ? 'true' : 'false');
var_dump(false || false ? 'true' : 'false');
if ( false | false )
var_dump('true');
else
var_dump('false');
if ( false || false )
var_dump('true');
else
var_dump('false');
if ( false or false )
var_dump('true');
else
var_dump('false');
exit;

Expected result:
----------------
string 'false' (length=5)

string 'false' (length=5)

string 'false' (length=5)

string 'false' (length=5)

string 'false' (length=5)


Actual result:
--------------
boolean true

string 'false' (length=5)

string 'false' (length=5)

string 'false' (length=5)

string 'false' (length=5)



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



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


Thread (2 messages)

« previous php.bugs (#160306) next »