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