#42140 [Bgs]: comma expression doesn't work outside for operator
| From: | dmitry at rsl dot ru | Date: | Tue, 31 Jul 2007 20:49:50 +0000 |
| Subject: | #42140 [Bgs]: comma expression doesn't work outside for operator | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-115614@lists.php.net to get a copy of this message | ||
ID: 42140
User updated by: dmitry at rsl dot ru
Reported By: dmitry at rsl dot ru
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: linux
PHP Version: 5.2.3
New Comment:
Other languages? Let's see:
[dmitry@srv dmitry]$ cat x.c; gcc x.c; ./a.out
#include<stdio.h>
int a,b,c;
main()
{
c = a=1,b=2;
printf("a=%d b=%d c=%d\n",a,b,c);
}
a=1 b=2 c=1
[dmitry@srv dmitry]$ cat x.pl;./x.pl
#!/usr/bin/perl
$c = $a=1, $b=2;
print "a=$a b=$b c=$c\n";
a=1 b=2 c=1
Guess the result of following:
<script>
c = a=1,b=2;
alert('a='+a+' b='+b+' c='+c);
</script>
Previous Comments:
------------------------------------------------------------------------
[2007-07-31 11:46:17] jani@php.net
I find that very confusing and stupid syntax. Just put the stuff inside
the loop like in all other languages. Don't reopen this anymore, this is
no bug.
------------------------------------------------------------------------
[2007-07-30 08:09:45] dmitry at rsl dot ru
How about following examples:
while ($a = mysql_fetch_array(),$rec_no++) {
}
$to_pay = ($left<$total)?($left,$stop=1):$total;
------------------------------------------------------------------------
[2007-07-29 23:37:43] jani@php.net
Because it doesn't make any sense elsewhere.
(Disclaimer: I can not think of any other places where it would be
useful, your example is not the best one..)
------------------------------------------------------------------------
[2007-07-29 16:06:33] dmitry at rsl dot ru
Actually documentation has nothing about comma expression, the only way
to know about it is to view example 4 of 'for' operator. Though, it is
also mentioned but not explained in Operator Precedence part of chapter
15.
Well, this syntax works inside 'for' structure, so it is supported, why
not to allow to use this syntax in other expressions also?
------------------------------------------------------------------------
[2007-07-29 15:26:46] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This syntax is simply not supported, and that is expected.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/42140
--
Edit this bug report at http://bugs.php.net/?id=42140&edit=1