Edit report at https://bugs.php.net/bug.php?id=40218&edit=1
ID: 40218 Updated by: ni...@php.net Reported by: jbailey at raspberryginger dot com Summary: Add Else clause to while -Status: Open +Status: Duplicate Type: Feature/Change Request -Package: Feature/Change Request +Package: *General Issues Operating System: Linux PHP Version: 5.2.0 Block user comment: N Private report: N New Comment: Closing as duplicate of https://bugs.php.net/bug.php?id=26411. Previous Comments: ------------------------------------------------------------------------ [2007-01-24 15:08:50] didou at keliglia dot com 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 ? ------------------------------------------------------------------------ [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 https://bugs.php.net/bug.php?id=40218&edit=1