Re: method chaining
| From: | Johan Ohlin | Date: | Mon, 11 Nov 2002 16:45:18 +0000 |
| Subject: | Re: method chaining | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-123829@lists.php.net to get a copy of this message | ||
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" <terry@boxitllc.com>
To: <php-general@lists.php.net>
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
>
>