ID: 40218
Comment by: didou at keliglia dot com
Reported By: jbailey at raspberryginger dot com
Status: Open
Bug Type: Feature/Change Request
Operating System: Linux
PHP Version: 5.2.0
New Comment:
I like the idea, but using the "else" keyword would break a lot of apps
using something like this:
if (X)
while (foo) {
}
else
no X
whileelse ?
Previous Comments:
------------------------------------------------------------------------
[2007-01-24 14:31:11] jbailey at raspberryginger dot com
Grr.. This bug tracking system ate my comment. So here's a much
shorter version of what I wrote:
Use cases:
Retrieving from a database (especially since PDO doesn't have a numrows
options):
while ($foo = $db->sql_fetchrow($result)) {
// Do something
} else {
// No rows found
}
This could also be useful for ArrayObjects and foreach:
$i = $myArray->getIterator();
foreach ($i as $item) {
// Do something
} else {
// Empty array
}
------------------------------------------------------------------------
[2007-01-24 14:18:57] jbailey at raspberryginger dot com
Description:
------------
Right now checks have to be done separately for when a while will
execute zero times, which means code duplication and constructs that
have to be kept in sync. I would like to see an else clause to while
that is executed when the while loop goes zero times.
Reproduce code:
---------------
while (0) {
echo "I ran";
} else {
echo "I didn't run.";
}
Expected result:
----------------
I didn't run.
Actual result:
--------------
Parse error: syntax error, unexpected T_ELSE in /tmp/test.php on line
5
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40218&edit=1