Bug->Req #50029 [Ana]: __invoke() can not work as class property.
| From: | nikic@php.net | Date: | Sun, 03 Nov 2013 14:08:10 +0000 |
| Subject: | Bug->Req #50029 [Ana]: __invoke() can not work as class property. | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-182577@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=50029&edit=1
ID: 50029
Updated by: nikic@php.net
Reported by: marc dot gray at gmail dot com
Summary: __invoke() can not work as class property.
Status: Analyzed
-Type: Bug
+Type: Feature/Change Request
Package: Class/Object related
Operating System: *
PHP Version: master
Block user comment: N
Private report: N
New Comment:
This is definitely an FR. Current behavior is intended as is, but somewhat controversial. Some
reading on this topic:
* https://wiki.php.net/rfc/closures/object-extension#warnings_on_direct-method_calls
* http://markmail.org/message/3zi53txadno6xrqa
* http://markmail.org/message/adr6ejlr4xewzo5a
* http://markmail.org/message/5mhjr472jfzmkhd4
Previous Comments:
------------------------------------------------------------------------
[2013-11-03 04:41:35] yohgaki@php.net
I think this is bug, not FR.
------------------------------------------------------------------------
[2013-11-02 23:29:42] worldoffame at hotmail dot com
Has this bug been fixed yet? Its one of the most annoying glitches in PHP, and funny it has existed
for more than 4 years.
------------------------------------------------------------------------
[2013-08-29 10:50:17] worldoffame at hotmail dot com
Also the argument that invoking class property could override class methods itself is just nonsense.
Guess what? Its a poor design if your method shares the same name as your property anyway. If
collision occurs it looks more like an improper OOP practice to me.
------------------------------------------------------------------------
[2013-08-29 10:44:14] worldoffame at hotmail dot com
Any updates on this? I hope it gets fixed asap, cant believe this bug has been around for 3+ years
and still left untouched. *sigh*
------------------------------------------------------------------------
[2012-06-08 12:24:34] programmierung at pfink dot de
The worst thing on this bug is that is_callable() returns true in this case even though it's
not callable:
The lines
if(is_callable($this->objectWithInvokeMethod))
return $this->objectWithInvokeMethod(0);
produce the fatal error
Fatal error: Call to undefined method MyClass::objectWithInvokeMethod()
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=50029
--
Edit this bug report at https://bugs.php.net/bug.php?id=50029&edit=1