Bug #77872 [Opn]: private/protected __serialize/__unserialize triggers a warning

From: 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

« previous php.bugs (#220384) next »