Bug #61025 [Csd->Opn]: __invoke() visibility not honored
| From: | laruence@php.net | Date: | Fri, 08 Mar 2013 02:37:17 +0000 |
| Subject: | Bug #61025 [Csd->Opn]: __invoke() visibility not honored | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-177661@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=61025&edit=1
ID: 61025
Updated by: laruence@php.net
Reported by: jpauli@php.net
Summary: __invoke() visibility not honored
-Status: Closed
+Status: Open
Type: Bug
Package: Class/Object related
Operating System: *nix
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
jpauli, I commit the patch I said last night, if you want to marco it, please do
it.
since I need this at trunk before I can improve the __Invoke implemention.
thanks
Previous Comments:
------------------------------------------------------------------------
[2013-03-08 02:36:36] laruence@php.net
Automatic comment on behalf of laruence
Revision: http://git.php.net/?p=php-src.git;a=commit;h=01049ca7aed40a5f1081d0303c69a40dae0f982e
Log: Fixed bug #61025 (__invoke() visibility not honored)
------------------------------------------------------------------------
[2013-03-08 02:34:24] laruence@php.net
Automatic comment on behalf of laruence
Revision: http://git.php.net/?p=php-src.git;a=commit;h=01049ca7aed40a5f1081d0303c69a40dae0f982e
Log: Fixed bug #61025 (__invoke() visibility not honored)
------------------------------------------------------------------------
[2013-03-07 14:27:32] laruence@php.net
the __toString is more likely:
<?php
class A {
private function __toString() {
echo __CLASS__;
}
}
$a = new A;
echo $a;
echo $a->__toString();
?>
result:
PHP Warning: The magic method __toString() must have public visibility and
cannot be static in /tmp/1.php on line 3
A
PHP Fatal error: Call to private method A::__toString() from context '' in
/tmp/1.php on line 10
so, I don't see much problem here, I think we only need a warning is okey. since
it's a magic method, not a normal method.
------------------------------------------------------------------------
[2013-03-07 03:20:30] laruence@php.net
I don't think this need to be fixed in this way, like __call:
```php
<?php
class Bar {
private function __call($name, $value) {
return __CLASS__;
}
}
$b = new Bar;
$b->__call("name", NULL);
```
works well, but with an warning:
```
Warning: The magic method __call() must have public visibility and cannot be
static
```
I am not sure whether this is a bug, or just need document.
------------------------------------------------------------------------
[2013-03-06 16:58:22] reeze@php.net
Hi, I made a patch again 5.5. how about fix it in 5.5?
------------------------------------------------------------------------
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=61025
--
Edit this bug report at https://bugs.php.net/bug.php?id=61025&edit=1