Edit report at http://bugs.php.net/bug.php?id=46240&edit=1

 ID:                 46240
 Comment by:         rick dot sketchy at gmail dot com
 Reported by:        kjarli at gmail dot com
 Summary:            Build in foreach else support
 Status:             Open
 Type:               Feature/Change Request
 Package:            Scripting Engine problem
 Operating System:   *
 PHP Version:        5.2.6
 Block user comment: N
 Private report:     N

 New Comment:

I have to agree with the OP. foreachelse (or something similar) is
really 

needed. I do like the suggestion posted by cerlestes at googlemail dot
com:



foreach($arr as $var)

{

    doCode();

}

onFail

{

    failHandling();

}



A fail handler would prove useful,however I can see it may have some 

limitations, in which case an else option on the foreach would be
satisfactory. 

Whilst we're at it, it may as well be added to while statements too.


Previous Comments:
------------------------------------------------------------------------
[2010-02-13 19:44:15] cerlestes at googlemail dot com

ADDITION:



Why I would like to have this is because of the following situation:



----

$test = (float)0; // This would be the return of a function.



// Failhandling

if(!$test)

{

    doFailhandling();

}else ...

----



This method has room for misinterpretations.

Ofc, you could test for "$test === false", but I think a general
onFail-handler would be way nicer.



Thanks for reading

------------------------------------------------------------------------
[2010-02-13 19:38:00] cerlestes at googlemail dot com

To be honest, I'd like to have a general "onFail{}" handler to put after
every function, not only foreach.

Like:



----

foreach($arr as $var)

{

    doCode();

}

onFail

{

    failHandling();

}

----



or



----

file("file.txt")

onFail

{

    failHandling();

}

----



Inside of the onFail-brackets a constant __ERROR__ would be available,
with further information on the error.



Basically, that onFail-handler would be executed upon receiving the
constant FAIL from the function before the onFail-command.



Regards

------------------------------------------------------------------------
[2009-10-06 08:37:09] ptmcnally at gmail dot com

I agree, this would be a nice addition to PHP6.

------------------------------------------------------------------------
[2009-09-07 01:13:01] john at brahy dot com

Please add a foreach else. It would save so much programming time and
eliminate so much room for error. It's so simple... foreach (){} else
{}



PLEASE PLEASE PLEASE PLEASE PLEASE PLEASE

------------------------------------------------------------------------
[2008-10-06 08:57:14] kjarli at gmail dot com

Description:
------------
Each time you want to foreach an array, you first have to check with 

a count or empty if you want to give a message or w/e to notify there 

is no entry to an array (or object if implements like iterator).



If possible add a else option to foreach.







Reproduce code:
---------------
<?php // old style

if(count($myArray) > 0) {

    foreach($myArray as $key => $value) {

    }

}



//new style



foreach($myArray as $key => $value) {

} else {

   // empty array/object

}

(kinda like how smarty implements it)



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=46240&edit=1

Reply via email to