Re: array key's: which is correct?

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

 



On Tue, Jun 08, 2010 at 09:38:58AM -0400, Robert Cummings wrote:

> Tanel Tammik wrote:
>> Hi,
>>
>> which one is correct or "better"?
>>
>> $array[3] = '';
>> or
>> $array['3'] = '';
>>
>> $i = 7;
>>
>> $array[$i] = '';
>> or
>> $array["$i"] = '';
>
> Sometimes it is good to illustrate the correct answer:
>
> <?php
>
> $array = array
> (
>     '1'     => '1',
>     '2'     => '2',
>     'three' => 'three',
>     '4.0'   => '4.0',
>     5.0     => 5.0,
> );
>
> var_dump( array_keys( $array ) );
>
> ?>
>
> The answer is surprising (well, not really :) and certainly advocates
> against making literal strings of integers or manually converting a
> string integer to a real integer or using floating point keys.

Curse you, Rob Cummings! ;-}

I was stunned at the results of this. I assumed that integers cast as
strings would remain strings as indexes. Not so. And then float indexes
cast to ints. Argh!

My advice to the original poster was slightly incorrect. But I would
still encourage you to avoid enclosing variables in double-quotes
unnecessarily. (And integers in single-quotes for that matter.)

Paul

-- 
Paul M. Foster

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



[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