If I have understood correctly what you want to do then this will do fine...

$foo->${$foo->get("bar")}->getBaz();

/ Johan

----- Original Message -----
From: "Terry McBride" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, November 11, 2002 4:53 PM
Subject: [PHP] method chaining


> Hello,
>
> I have a question about php and OO.  I want to chain methods together
having
> them performed on the results of the following method.  Meaning something
> like $foo->get("bar")->getBaz().
>
> I get the following error from the script bellow.
> Parse error: parse error, unexpected T_OBJECT_OPERATOR, expecting ',' or
';'
> in /usr/local/apache/php/testchain.php on line 47
>
> Anybody know why I can't do this?  Anyway to make it it one statement
> instead of $tmp = $foo->get("bar"); $tmp->getBaz(); -- lame --?
> Is their a config setting or something?
>
> Thanks in advance,
> Terry
>
> <?php
>
> class Foo
> {
>     var $vector = array();
>     function Foo()
>     {}
>
>     function put($name, $value)
>     {
>         $this->vector[$name] = $value;
>         return $this->vector[$name];
>     }
>
>     function get($name)
>     {
>         return $this->vector[$name];
>     }
>
> }
>
> class Bar
> {
>     var $baz = "";
>
>     function Bar() {}
>
>     function setBaz($value)
>     {
>         $this->baz = $value;
>         return $this->baz;
>     }
>     function getBaz()
>     {
>         return $this->baz;
>     }
> }
>
> $bar = new Bar();
> $bar->setBaz("test succeeded");
>
> $foo = new Foo();
> $foo->put("bar", $bar);
>
> echo $foo->get("bar")->getBaz(), "<br>";
>
> ?>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to