NYCPHP Meetup

NYPHP.org

[nycphp-talk] Accessing non-existent array elements ok?

Darryle Steplight dsteplight at gmail.com
Sun Aug 17 18:43:28 EDT 2008


Kristina,

    It sounds like you got it now. Once I learned how to use the short
hand version I started to use it all the time. It's great for
scenarios like the one provided but sucks if you have long lines of
code. At the end of the day it's also good because it helps to keep
your code DRY.

On Sun, Aug 17, 2008 at 6:37 PM, Michael B Allen <ioplex at gmail.com> wrote:
> On Sun, Aug 17, 2008 at 6:10 PM, Kristina Anderson
> <ka at kacomputerconsulting.com> wrote:
>> Hi all.  I have a question regarding the below syntax
>>
>> $result = isset($a['c']) ? $a['c'] : NULL;
>>
>>
>> This is testing two conditions, first if $a['c'] is set, and then, if $a
>> ['c'] is NULL...correct?
>
> No.
>
> The x ? a : b construct is called the "ternary operator". The following example:
>
>  $x ? $a : $b
>
> could be read "If $x is true, the expression evaluates to $a.
> Otherwise, the expression evaluates to $b.".
>
> It's basically a shorthand expression for if / else.
>
> Mike
>
>> What would $result be if $a['c'] is set but is not NULL?  The same as
>> if $a['c'] was not set?  or...?
>>
>> I've seen similar syntax before, in some code Tedd & I were working
>> with a couple of months back...and just want to make sure I fully
>> understand what is actually happening with it.
>>
>> Thanks.
>>
>> -- Kristina
>>
>>> On Sun, Aug 17, 2008 at 4:49 PM, Michael B Allen <ioplex at gmail.com>
>> wrote:
>>> > Is it ok to access non-existent array elements?
>>> >
>>> > Will accessing an array element using a key that does not exist
>> always
>>> > return NULL?
>>>
>>> it depends on how you have warnings configured. you might be getting
>>> them in your log, for example... i believe the result of accessing a
>>> non-existent array element is undefined.
>>>
>>> if i were you, i'd prob'ly ask if it exists first:
>>>
>>> <?php
>>>
>>> $result = isset($a['c']) ? $a['c'] : NULL;
>>>
>>> /** OR **/
>>>
>>> $result = array_key_exists('c', $a) ? $a['c'] : NULL;
>>>
>>> ?>
>>>
>>> see:
>>>
>>> http://us2.php.net/function.isset
>>> http://us2.php.net/function.array-key-exists
>>>
>>>
>>> justin
>>> --
>>> http://justinhileman.com
>>> _______________________________________________
>>> New York PHP Community Talk Mailing List
>>> http://lists.nyphp.org/mailman/listinfo/talk
>>>
>>> NYPHPCon 2006 Presentations Online
>>> http://www.nyphpcon.com
>>>
>>> Show Your Participation in New York PHP
>>> http://www.nyphp.org/show_participation.php
>>>
>>>
>>
>>
>> _______________________________________________
>> New York PHP Community Talk Mailing List
>> http://lists.nyphp.org/mailman/listinfo/talk
>>
>> NYPHPCon 2006 Presentations Online
>> http://www.nyphpcon.com
>>
>> Show Your Participation in New York PHP
>> http://www.nyphp.org/show_participation.php
>>
>
>
>
> --
> Michael B Allen
> PHP Active Directory SPNEGO SSO
> http://www.ioplex.com/
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
>
> NYPHPCon 2006 Presentations Online
> http://www.nyphpcon.com
>
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php
>



More information about the talk mailing list