Edit report at https://bugs.php.net/bug.php?id=63133&edit=1
ID: 63133 Updated by: larue...@php.net Reported by: goetas at lignano dot it Summary: Runtime Notice & Declaration of private methods 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: @goetas 5.3 didn't apply the fix at all, so it's right that E_STRCT warning shows up in 5.3. @nikic it's not a big issue, and it's a engine behavior change. I assume lstrojny did'nt apply that fix to 5.3 for that reason. Previous Comments: ------------------------------------------------------------------------ [2012-09-24 15:32:50] goetas at lignano dot it @nikic You are right. I've forgot to add "./" before "php" goetas@goetas-desktop:~/php-5.3.17/sapi/cli$ ./php -v PHP 5.3.17 (cli) (built: Sep 24 2012 09:14:34) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies goetas@goetas-desktop:~/php-5.3.17/sapi/cli$ ./php /home/goetas/Scrivania/www/varie/testprivarte.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 ------------------------------------------------------------------------ [2012-09-24 14:56:27] ni...@php.net @goetas: Your CLI indicates that you are using PHP 5.3, but as laruence pointed out above this was only fixed in PHP 5.4 ;) Not sure though what prevents us from fixing it in 5.3 too. Doesn't break BC after all. ------------------------------------------------------------------------ [2012-09-24 07:30:45] goetas at lignano dot it 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 ------------------------------------------------------------------------ [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