Bug #77872 [Opn]: private/protected __serialize/__unserialize triggers a warning
| From: | nikic@php.net | Date: | Tue, 09 Apr 2019 15:31:10 +0000 |
| Subject: | Bug #77872 [Opn]: private/protected __serialize/__unserialize triggers a warning | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-220384@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=77872&edit=1
ID: 77872
Updated by: nikic@php.net
Reported by: nicolas dot grekas+php at gmail dot com
Summary: private/protected __serialize/__unserialize triggers
a warning
Status: Open
Type: Bug
Package: *General Issues
PHP Version: Next Minor Version
Block user comment: N
Private report: N
New Comment:
This is a standard warning generated by the internal call mechanism, not by the serialization
handling. If we change something here it should probably only be in PHP 8 and for all users of the
mechanism.
Previous Comments:
------------------------------------------------------------------------
[2019-04-09 13:51:22] nicolas dot grekas+php at gmail dot com
Description:
------------
When the new __serialize/__unserialize method are made protected or private, a warning is thrown.
Throwing an Error might be better.
Test script:
---------------
class foo
{
private function __serialize()
{
return [123];
}
public function __unserialize($a)
{
}
}
$f = new foo();
$s = serialize($f);
Expected result:
----------------
"Fatal error: Uncaught Error: Call to private method foo::__serialize()" or similar
Actual result:
--------------
Warning: Invalid callback foo::__serialize, cannot access private method foo::__serialize() in
/var/www/html/test.php on line 22
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=77872&edit=1