Edit report at https://bugs.php.net/bug.php?id=63133&edit=1
ID: 63133 User updated by: goetas at lignano dot it Reported by: goetas at lignano dot it Summary: Runtime Notice & Declaration of private methods -Status: Feedback +Status: Open Type: Bug Package: *General Issues Operating System: ubuntu/slackware PHP Version: 5.3.17 Block user comment: N Private report: N New Comment: I've just tested with fresh PHP downloaded and compiled few minutes ago. goetas@goetas-desktop:~/php-5.3.17/sapi/cli$ php -v PHP 5.3.2-1ubuntu4.17 with Suhosin-Patch (cli) (built: Jun 19 2012 03:21:35) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies goetas@goetas-desktop:~/php-5.3.17/sapi/cli$ php /home/goetas/Scrivania/www/varie/testprivarte.php PHP Strict Standards: Declaration of ClassB::myMethod() should be compatible with that of ClassA::myMethod() in /home/goetas/sviluppo/mnt/md1/data/www/varie/testprivarteB.php on line 10 Strict Standards: Declaration of ClassB::myMethod() should be compatible with that of ClassA::myMethod() in /home/goetas/sviluppo/mnt/md1/data/www/varie/testprivarteB.php on line 10 Previous Comments: ------------------------------------------------------------------------ [2012-09-22 03:26:01] larue...@php.net the two example both throw strict warning here. could you please check it again? make sure you set error_reporting to show E_STRICT. the fix for #62956 is only for 5.4 branch. 5.3 is a very stable version, we don't want to make such change to it. thanks ------------------------------------------------------------------------ [2012-09-21 15:45:12] goetas at lignano dot it Description: ------------ There is some "erros" with overwritten private methods in different classes. The bug is linked to #62956, but the bug seems to be solved only for classes defined inside the same file. Test script: --------------- Example 1 test.php ---- class ClassA { public function fun(){ $this->myMethod(5); } private function myMethod($param){ } } class ClassB extends ClassA { public function fun(){ $this->myMethod(); } private function myMethod(){ } } --- Example 2 ---- test.php ---- class ClassA { public function fun(){ $this->myMethod(5); } private function myMethod($param){ } } include 'test2.php' --- test2.php ---- class ClassB extends ClassA { public function fun(){ $this->myMethod(); } private function myMethod(){ } } --- Expected result: ---------------- The two examples should work both Actual result: -------------- The second example rises this error: Strict Standards: Declaration of ClassB::myMethod() should be compatible with that of ClassA::myMethod() in /mnt/md1/data/www/test2.php on line 0 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63133&edit=1