|
Posted by Dan Trainor on 07/22/05 00:28
Chris W. Parker wrote:
> Dan Trainor <mailto:info@hostinthebox.net>
> on Thursday, July 21, 2005 2:03 PM said:
>
>
>>I never see "hi" even if an array is set as such:
>>
>>$vars = array("one","two","three","four","five");
>
>
> That's because your function always returns true. If it finds a missing
> value it returns true. If it doesn't find a missing value it returns
> true. Because of this the true code block is always executed.
>
> You should do this instead:
>
> function hasMissingVals($input)
> {
> // make sure we've been passed an array with values
> if(is_array($input) && (count($input) > 0))
> {
> foreach($input as $v)
> {
> if(empty($v))
> {
> return true;
> }
> }
> }
>
> return false;
> }
>
> This way your function will always return false unless it finds a
> missing value in which case it will return true.
>
> As you can see I changed the name slightly from 'findMissingVals()' to
> 'hasMissingVals()' since your function is not actually finding any
> missing values. Finding suggests that your function will return data
> based on the location of the missing value which it does not do.
>
>
>>if (findMissingVals($vars)) {
>> if (!$var1) { ?> hi1 <? };
>> if (!$var2) { ?> hi2 <? };
>> if (!$var3) { ?> hi3 <? };
>> if (!$var4) { ?> hi4 <? };
>> if (!$var5) { ?> hi5 <? };
>> if (!$var6) { ?> hi6 <? };
>>} else {
>> echo "hi";
>>}
>
>
> 1. Where are $var1, $var2, $var3, etc. coming from? I think you mean to
> write $var[1], $var[2], $var[3], etc.?
>
> 2. It will be a good idea to get out of the habit of breaking in and out
> of PHP like that. Instead just do: echo 'hi1';
>
> You'll have problems down the road with modifying the headers (cookies,
> redirects, content-type, etc.) if you break in and out.
>
>
> Hope this helps,
> Chris.
>
Hello, Chris -
I see what you're saying about always returning true. I really
understand now. I'd just like to take a minute to tell you thanks for
the help.
Thanks!
-dant
Navigation:
[Reply to this message]
|