Bug #61915 [Opn->Nab]: incorrect associativity of ternary operator
| From: | johannes@php.net | Date: | Wed, 02 May 2012 22:38:59 +0000 |
| Subject: | Bug #61915 [Opn->Nab]: incorrect associativity of ternary operator | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-170104@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=61915&edit=1
ID: 61915
Updated by: johannes@php.net
Reported by: iam4webwork at hotmail dot com
Summary: incorrect associativity of ternary operator
-Status: Open
+Status: Not a bug
Type: Bug
Package: Scripting Engine problem
Operating System: Linux,Windows
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
Yes, this was an oversight when the language was defined and is documentedlike that on http://php.net/ternary (see the last note). Unfortunately we
can't fix this without breaking code, which depends on the current order, in a non-obvious way.
Previous Comments:
------------------------------------------------------------------------
[2012-05-02 22:16:24] iam4webwork at hotmail dot com
Description:
------------
zend_language_parser.y on line 81 gives the '?:' operator left associativity when
it should be right as in virtually every other language that has a ternary
operator.
Test script:
---------------
$arg = "3";
$food = ( ($arg == '1') ? 'Banana' :
($arg == '2') ? 'Apple' :
($arg == '3') ? 'Toast' :
($arg == '4') ? 'Cantalope' :
($arg == '5') ? 'Swiss Cheese' : 'Fig Newton Cookie'
);
echo $food;
Expected result:
----------------
I expected to see 'Toast'.
Actual result:
--------------
The actual result is 'Swiss Cheese'.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=61915&edit=1