NYCPHP Meetup

NYPHP.org

[nycphp-talk] Access an element of a method that returns an ar ray

Joe Crawford jcrawford at codebowl.com
Wed Jul 21 11:06:51 EDT 2004


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
> 
> Joe Crawford wrote:
> 
> > Scott,
> > 
> > thanks for this clarification that is a feature of 5 that i did not know
> > about yet ;)
> > 
> > Joe Crawford Jr.
> > 
> > On Wed, 2004-07-21 at 07:54, Scott Mattocks wrote:
> > 
> >>Joe Crawford wrote:
> >>
> >>
> >>>i dont see this working in 4 or 5 reason being is you have to have the
> >>>method return the array before you can actually access the elemnets so
> >>>$obj->method()[3] will not work you must assign it to a variable before
> >>>you can access it.  
> >>
> >>PHP 4 doesn't know what to do with this syntax but one of the changes in 
> >>PHP 5 is to let you use the return value of a function without assigning 
> >>it first.  If your function/method returns an object you can call 
> >>methods of that object without assigning it to a variable first.
> >>Ex: $obj->getOtherObj()->method();
> >>
> >>Scott Mattocks
> >>_______________________________________________
> >>talk mailing list
> >>talk at lists.nyphp.org
> >>http://lists.nyphp.org/mailman/listinfo/talk
> >>
> >>
> > 
> > 
> > _______________________________________________
> > talk mailing list
> > talk at lists.nyphp.org
> > http://lists.nyphp.org/mailman/listinfo/talk
> > 
> 
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
> 
> 




More information about the talk mailing list