Edit report at https://bugs.php.net/bug.php?id=62449&edit=1
ID: 62449
User updated by: andrew at phantom dot uk dot net
Reported by: andrew at phantom dot uk dot net
Summary: Allow comma separated statements with (brace
omitted) if statements
-Status: No Feedback
+Status: Closed
Type: Feature/Change Request
Package: *General Issues
PHP Version: 5.4.4
Block user comment: N
Private report: N
New Comment:
@johannes
Yeah, someone pointed that out to me in #phpnw right after I posted this.
@phpmpan
Assuming $foo is an instance of Exception, it would echo 'bar' then throw an
exception, in my original though process, however someone pointed out to me
that
some language constructs (such as echo) already allow a comma separated list of
arguments.
Although, in that case the comma is not immediately followed by a variable that
can be converted to string, so I don't think that's as good a demonstration of
the issue at hand as johannes example.
It could work if the statements were separated by say, a colon, but this is
probably over-complicating things for a simple convenience.
Previous Comments:
------------------------------------------------------------------------
[2012-06-29 14:10:04] phpmpan at mpan dot pl
if ($foo)
echo 'bar', throw $foo;
What should be the meaning of this code?
------------------------------------------------------------------------
[2012-06-29 14:08:20] [email protected]
This leads to too many conflicts. For instance what should this code do:
if (condition()) echo foo(), bar();
right now it prints the returned values from foo() and bar(). This can't be
easily distinguished from your syntax. There are other similar cases. Such
special case syntax also makes the language more complex with more special
cases to mind.
------------------------------------------------------------------------
[2012-06-29 13:38:26] andrew at phantom dot uk dot net
Description:
------------
Allow statements to be separated by commas in single line if statements (when
omitting the braces)
Test script:
---------------
if ( isset($_GET['take_me_there']) )
header('location: /you_are_here.php'), exit;
Expected result:
----------------
The client would be redirected to www.yoursite.com/you_are_here.php and the
script would terminate execution.
Actual result:
--------------
Parse error: syntax error, unexpected ',' in /opt/lampp/htdocs/test.php on line
2
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62449&edit=1