The big question is: how would You (Philip,Yasuo) want list
    to behave when it encounters a hash? Do you want to get the
    keys ? Or the values? Or do you want to get the hashed
    element on its own again as key => value ?

    No, I don't think it's a good idea. That is why we have
    array_(keys|values), it makes the code readable and it's easy
    to understand.

    For me, it would make most sense to have the following:

        list($a, $b) = array('a' => 'apple', b => 'beer');

        var_dump($a);
        array(1) {
          ["a"]=>
            string(5) "apple"
        }

    I don't think many would share _this_ behaviour.

    All in all I think this would get too ambiguous if we would
    change the behaviour. Unless someone comes with really
    intuitive and useable I examples I don't think it should
    change at all (the list construct).

    - Markus


On Sat, Apr 06, 2002 at 05:01:23PM +0900, Yasuo Ohgaki wrote : 
> Philip Olson wrote:
> >>> $foo = array('a' => 'apple', 'b' => 'banana');
> >>> 
> >>> // Notice - Undefined offset:  1
> >>> // Notice - Undefined offset:  0
> >>> list($a,$b) = $foo; 
> >>
> >>Isn't this line should be
> >>
> >>list($a, $b) = array_keys($foo);
> >>or
> >>list($a, $b) = array_values($foo);
> >
> >
> >Sure that works.
> >
> >
> >>I might miss you point, since it seems we are
> >>going to make these feature requests bogus.
> >
> >
> >Why?  list() working with associative arrays 
> >seems bogus to you?  Please be specific as to 
> >why this is bad.  Why is requiring keys indices 
> >to begin at 0 good or necessary? I can't think 
> >of a case where this will be bad for a php user.
> >Imho it's intuitive.
> 
> I'm still not sure what the result should be....
> valus, keys, key=>value, or else.
> 
> >Sure it's not a major deal and more pressing 
> >needs exist but hey, what can I say. :)
> 
> Since we have following syntax
> 
> list($ret_val1, $ret_val2) = some_function();
> 
> It sounds like a good idea to support following
> syntax for consistency.
> 
> list($value_of_elem1, $value_of_elem2) = $foo;
> 
> We need to consider how to handle assoc array.
> Following script works,
> <?php
> 
> function foo() {
>   return array('a', 'b');
> }
> 
> list($a, $b) = foo();
> 
> echo $a.$b;
> ?>
> 
> But this one does not,
> <?php
> 
> function foo() {
>   return array('a'=>'A', 'b'=>'B');
> }
> 
> list($a, $b) = foo();
> 
> echo $a.$b;
> ?>
> 
> --
> Yasuo Ohgaki
> 
> 
> -- 
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php

-- 
Please always Cc to me when replying to me on the lists.
GnuPG Key: http://guru.josefine.at/~mfischer/C2272BD0.asc
"Mind if I MFH ?" "What QA did you do on it?" "the usual?" "ah... none :)"

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to