#42140 [Bgs]: comma expression doesn't work outside for operator

From: 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

« previous php.bugs (#115614) next »