Change to function call semantics in PHP 5.1?

php.internals

Mark Spruiell

20 years ago
In PHP 5.0.x, I can chain function calls like this: $obj->method()->anotherMethod(); In PHP 5.1.x, this code results in an error: parse error, unexpected T_OBJECT_OPERATOR in ... I've looked through the change log for 5.1 but didn't see anything relevant. Was this an intentional change? Thanks, - Mark

Michael Wallner

20 years ago
Mark Spruiell wrote:
> In PHP 5.0.x, I can chain function calls like this: > > $obj->method()->anotherMethod(); > > In PHP 5.1.x, this code results in an error: > > parse error, unexpected T_OBJECT_OPERATOR in ... > > I've looked through the change log for 5.1 but didn't see > anything relevant. > > Was this an intentional change?
What version did you try? It seems to still work fine with current CVS. Regards,
-- Michael - <mike(@)php.net> http://dev.iworks.at/ext-http/http-functions.html.gz

Mark Spruiell

20 years ago
> Mark Spruiell wrote: >> In PHP 5.0.x, I can chain function calls like this: >> >> $obj->method()->anotherMethod(); >> >> In PHP 5.1.x, this code results in an error: >> >> parse error, unexpected T_OBJECT_OPERATOR in ... >> >> I've looked through the change log for 5.1 but didn't see >> anything relevant. >> >> Was this an intentional change? > > What version did you try? It seems to still work fine with current CVS.
Sorry, false alarm. I thought I had 5.1.2 in my path, but it was actually 4.x. - Mark

jome

20 years ago
Mark Spruiell skrev:
> In PHP 5.0.x, I can chain function calls like this: > > $obj->method()->anotherMethod(); > > In PHP 5.1.x, this code results in an error: > > parse error, unexpected T_OBJECT_OPERATOR in ... > > I've looked through the change log for 5.1 but didn't see > anything relevant.
jome@thisbe:~$ php -r 'class a { function b() { return new B; } } class B { function C() { echo "Works fine."; } } $a = new A; $a->b()->c();' Works fine. jome@thisbe:~$ php -v PHP 5.1.1 (cli) (built: Jan 7 2006 21:44:30) The error is somewhere in your code. /j