php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #54576 or is différent of true
Submitted: 2011-04-20 16:02 UTC Modified: 2011-04-20 18:49 UTC
From: dungar at kabia dot fr Assigned:
Status: Not a bug Package: Unknown/Other Function
PHP Version: 5.3.6 OS: debian
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: dungar at kabia dot fr
New email:
PHP Version: OS:

 

 [2011-04-20 16:02 UTC] 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)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-04-20 18:49 UTC] dtajchreber@php.net
-Status: Open +Status: Bogus
 [2011-04-20 18:49 UTC] dtajchreber@php.net
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
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 15 07:01:31 2025 UTC