[nycphp-talk] Access an element of a method that returns an ar ray
Joe Crawford
jcrawford at codebowl.com
Wed Jul 21 11:18:44 EDT 2004
David,
thanks for this explanation ;)
Joe Crawford Jr.
On Wed, 2004-07-21 at 11:10, David Sklar wrote:
> That's just the way the parser works. If a function or method returns an
> array, you have to assign the array before you can access an individual
> element of it.
>
> You can also do this (in either PHP 4 or PHP 5):
>
> list($stooge1,$stooge2,$stooge3) = get_array();
>
> or even, this, which saves the variable assignment but makes your code
> harder to read:
>
> list(,$stooge2,) = get_array();
>
> David
>
> Joe Crawford wrote:
>
> > David,
> >
> > ok but why would they not allow array indices if they allow you to get
> > strings, integers, etc...
> >
> > Joe Crawford Jr.
> >
> >
> > On Wed, 2004-07-21 at 09:44, David Sklar wrote:
> >
> >>While you can do that nice chaining with object methods in PHP 5, you
> >>can't do it with array indices.
> >>
> >>This is OK in PHP 5:
> >>
> >><?php
> >>
> >>class Stooge {
> >> private $name = null;
> >> public function __construct($name) {
> >> $this->name = $name;
> >> }
> >> public function getName() {
> >> return $this->name;
> >> }
> >>}
> >>
> >>function get_object() {
> >> return new Stooge('Moe');
> >>}
> >>
> >>print get_object()->getName();
> >>?>
> >>
> >>It prints "Moe". But this is not:
> >>
> >><?php
> >>function get_array() {
> >> return array('Moe','Larry','Curly');
> >>}
> >>
> >>
> >>// these all are parse errors:
> >>print get_array()[1];
> >>print (get_array())[1];
> >>print {get_array()}[1];
> >>
> >>?>
> >>
> >>David
>
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
>
>
More information about the talk
mailing list