|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #40218 Add Else clause to while
Submitted: 2007-01-24 14:18 UTC Modified: 2012-09-22 09:27 UTC
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: jbailey at raspberryginger dot com Assigned:
Status: Duplicate Package: *General Issues
PHP Version: 5.2.0 OS: Linux
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: jbailey at raspberryginger dot com
New email:
PHP Version: OS:


 [2007-01-24 14:18 UTC] jbailey at raspberryginger dot com
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


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2007-01-24 14:31 UTC] 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 15:08 UTC] 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) {
  no X

whileelse ?
 [2012-09-22 09:27 UTC]
Closing as duplicate of
 [2012-09-22 09:27 UTC]
-Status: Open +Status: Duplicate -Package: Feature/Change Request +Package: *General Issues
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Sat Sep 24 23:05:52 2022 UTC