|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #37632 Protected method access problem (similar bug 37212)
Submitted: 2006-05-29 18:43 UTC Modified: 2006-05-29 20:08 UTC
From: stochnagara at hotmail dot com Assigned: helly (profile)
Status: Closed Package: Class/Object related
PHP Version: 5CVS-2006-05-29 (snap) OS: *
Private report: No CVE-ID: None
 [2006-05-29 18:43 UTC] stochnagara at hotmail dot com
In class structures where the sub-classes are extended non-linearly (i.e. multiple classes on the same tier), the sub-classes in different lines cannot access methods defined as protected in a shared parent class in eachother.

Actually this is a clone of bug 37212 but for method instead of variables.

Reproduce code:
class A {
	protected function testProtected() { echo "Test Protected Called in A"; }

class B extends A {
    public function doTest (A $obj) {

class C extends A {
	protected function testProtected() { echo "Test Protected Called in C"; }

$B = new B;
$C = new C;
$B->doTest ($C); // fatal


Expected result:
Test Protected Called in C

Actual result:
Fatal error: Call to protected method C::testProtected() from context 'B' in c:\program files\apache group\Apache\htdocs\cinh.php on line 8


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2006-05-29 20:08 UTC]
Fixed in 5.2, HEAD. Since the rule cannot be fixed for properties in 5.1 it stays the same for methods in 5.1, too. That way we lower the WTF factor.
 [2006-05-29 20:08 UTC]
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
Thank you for the report, and for helping us make PHP better.

PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 23 21:01:31 2024 UTC