Jay Blanchard wrote:
[snip]
/* check for errors */
$arrCheckItems = array(
'Name',
'Dept',
'Level',
);
/* check for blanks */
foreach($_POST AS $key=>$value){
if(in_array(niceName($key), $arrCheckItems)){
$errorsReported[] = notBlank($key, $value);
} }


Even if the return from notBlank is nothing, $errorReported[] gets set
for each item passed in the foreach loop. I have tried using conditional
returns in the function, but to no avail. Perhaps my logic is screwed on
this.
[/snip]

I changed to  the following code and it solves the problem ...

foreach($_POST AS $key=>$value){
if(in_array(niceName($key), $arrCheckItems)){
$nbr = notBlank($key, $value);
if(!('' == $nbr)){
$errorsReported[] = $nbr;
}
} }



<?

// one less if :-)...

foreach($_POST AS $key=>$value){
        if(in_array(niceName($key), $arrCheckItems) && !('' == ($nbr = 
notBlank($key, $value)))) {
                // error to report.
                $errorsReported[] = $nbr;
        }
}

// ...also array_filter() with only 1 arg (array) is handy for remove empty vals

$errorsReported = array();
foreach($_POST AS $k => $v){
        if(in_array(niceName($k), $arrCheckItems)) {
                $errorsReported[] = notBlank($k, $v);
        }
}

if (count($errorsReported = array_filter($errorsReported))) {
        // error msgs to report!
}

?>

quote from manual:

"If the callback function is not supplied, array_filter() will remove
all the entries of input that are equal to FALSE. See converting to
boolean for more information."

I do like array filter - also very handy in conjunction with create_function() 
:-)

rgds,
jochem

Before I was directly assigning the value of the return from the
notBlank function to $errorsReported. Now something only gets assigned
to $errorsReported if there is something to assign.



-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to