Re: if elseif elseif elseif....
| From: | Paul M Foster | Date: | Sun, 08 Mar 2009 06:42:03 +0000 |
| Subject: | Re: if elseif elseif elseif.... | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-289585@lists.php.net to get a copy of this message | ||
On Sun, Mar 08, 2009 at 03:03:33PM +1100, Naz wrote:
>
> Generally, the approach I take is as follows:
>
> $errors = array();
> if (empty($_POST['name']))
> array_push($errors, 'A name was not entered.');
> if (empty($_POST['address']))
> array_push($errors, 'An address was no supplied.');
> if (empty($_POST['gender']) || ($_POST['gender'] != 'M'
> &&
> $_POST['gender'] != 'F'))
> array_push($errors, 'A gender was not supplied.');
>
> And then you can check that all form fields were correctly filled in by
> checking for:
>
> count($errors) == 0
>
> If that is not true, simply output the contents of the $errors array
> appropriately. The advantages of doing it like this are:
>
> 1. You get full details on why the form was not filled out, rather
> than simply telling users "The form was not filled in" and not
> telling them what fields they missed or what was incorrectly
> filled out.
> 2. You can set multiple criteria over and above simply checking for a
> value, e.g., ensuring that the gender field is either M or F and
> not an invalid value (in practice this will probably be a radio or
> drop list to ensure correct values, but this method ensures that
> you can do value sanity checking as well for things like dates etc)
>
From the php.net manual for array_push():
Note: If you use array_push() to add one element to the array it's
better to use $array[] = because in that way there is no overhead
of calling a function.
But that's the only change I would make. Overall, I completely agree
with this philosophy.
Paul
--
Paul M. Foster