Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #4593

Re: loose thinking

From "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid>
Newsgroups comp.lang.php
Subject Re: loose thinking
Date 2012-01-24 14:04 +0100
Organization http://alvaro.es/
Message-ID <jfma85$qmb$1@dont-email.me> (permalink)
References <9o7h5fFu6rU1@mid.uni-berlin.de>

Show all headers | View raw


El 24/01/2012 11:57, M. Strobel escribió/wrote:
> I hate this sloppiness of PHP:
>
> strobel@s114-intel:~>  php -a
> Interactive shell
>
> php>  $a[null] = 'you are Nothing';
> php>  var_dump($a);
> array(1) {
>    [""]=>
>    string(15) "you are Nothing"
> }
> php>  $i=null;
> php>  $a[$i] = 'you are Nothing';
> php>  var_dump($a);
> array(1) {
>    [""]=>
>    string(15) "you are Nothing"
> }
> php>  var_dump(key($a));
> string(0) ""
>
> There is no difference between an empty string and null in array indexing. That is
> stupid. Why does the language not just respect my definitions?

Because your make your definitions fit in something that already have a 
previous definition. String keys must be integers or strings, as documented:

http://es.php.net/manual/en/language.types.array.php#language.types.array.syntax.array-func

It's the same situation where you pass a float to a function that's 
defined to expect a string: your param will be cast to the target data type.

As about the array key definition, a key is an identifier so I think 
it's reasonable to make it a string.

Having arrays where keys can be any arbitrary data type looks like an 
(ahem) interesting idea but you'll have to implement it yourself. If it 
can actually be done in pure PHP, the tool is possibly the ArrayIterator 
interface:

http://es.php.net/manual/en/class.arrayiterator.php



-- 
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://borrame.com
-- Mi web de humor satinado: http://www.demogracia.com
--

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 11:57 +0100
  Re: loose thinking "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> - 2012-01-24 14:04 +0100
    Re: loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 14:32 +0100
      Re: loose thinking The Natural Philosopher <tnp@invalid.invalid> - 2012-01-24 13:41 +0000
        Re: loose thinking Jerry Stuckle <jstucklex@attglobal.net> - 2012-01-24 09:35 -0500
      Re: loose thinking "Peter H. Coffin" <hellsop@ninehells.com> - 2012-01-24 08:16 -0600
        Re: loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 17:35 +0100
          Re: loose thinking The Natural Philosopher <tnp@invalid.invalid> - 2012-01-24 16:59 +0000
            Re: loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 19:11 +0100
        Re: loose thinking Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-01-25 04:49 +0100
          Re: loose thinking "Peter H. Coffin" <hellsop@ninehells.com> - 2012-01-25 07:58 -0600
            Re: loose thinking Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2012-01-25 20:37 +0100
      Re: loose thinking "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> - 2012-01-24 16:20 +0100
        Re: loose thinking The Natural Philosopher <tnp@invalid.invalid> - 2012-01-24 15:43 +0000
        Re: loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 19:43 +0100
      Re: loose thinking Arno Welzel <usenet@arnowelzel.de> - 2012-01-24 17:02 +0100
        Re: loose thinking "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-01-24 17:28 +0100

csiph-web