Re: reason for a "Notice:.." on one site but not another? (Same code.)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Why do you all always use isset?
Why do you don't use array_key_exists instead? is it a more semantic
solution?

<?php

$key = 'UserWishesDateRange'; # just to make statement shorter
if( array_key_exists($key, $_POST ) && 'T' == $_POST[$key] )
{
    echo ' the key exists... and it is a "T" '';
}

*isset*: Determine if a variable is set and is not NULL*
array_key_exists: *Checks if the given key or index exists in the array


On Mon, Aug 10, 2009 at 1:42 PM, John Butler
<govinda.webdnatalk@xxxxxxxxx>wrote:

>
>>>  If you switch it around you'll get a notice because the IF evaluates
>> from left to right.  So you just want to make sure you check isset()
>> first.
>>
>> This would throw a notice:
>>
>> if($_POST['UserWishesDateRange']  == 'T' &&
>> isset($_POST['UserWishesDateRange'])) {
>>
>
> Aha!  That must be what I tried and was still getting the notice!
>  Interesting that it works (without notice) if we check against the isset ()
> one first.   It makes if() look more intelligent that I would think... as if
> it saying, "good now that we've established that the var isset, now is it
> also equal to '___'., as opposed to just, "is var set, and is var equal to
> "___'.




-- 
Martin Scotta

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux