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:             Open
 Type:               Bug
 Package:            *General Issues
 Operating System:   ubuntu/slackware
 PHP Version:        5.3.17
 Block user comment: N
 Private report:     N

 New Comment:

@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


Previous Comments:
------------------------------------------------------------------------
[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

Reply via email to