#45743 [Com]: property_exists fails to find static protected member in child class
ID: 45743
Comment by: ilewis at uk dot ibm dot com
Reported By: ilewis at uk dot ibm dot com
Status: Feedback
Bug Type: Scripting Engine problem
Operating System: Fedora 8
PHP Version: 5.3CVS-2008-08-07 (snap)
New Comment:
I've put an updated diff -u output on pastebin:
http://pastebin.com/m43078aa5
I've also realised that this fix breaks testcase
Zend/tests/bug42211.phpt, but I think this is a bug in the testcase,
that is, it is testing for the broken behaviour.
I've put a patch for the testcase on pasetbin as well
http://pastebin.com/m15c01dec
Previous Comments:
------------------------------------------------------------------------
[2008-08-07 10:18:16] jani@php.net
Send patches in unified diff format. (diff -u)
------------------------------------------------------------------------
[2008-08-07 09:57:20] ilewis at uk dot ibm dot com
Description:
------------
property_exists() doesn't find a member in a child class when the
member is static and protected.
The code below shows that the member is accessible and should be found
by property_exists.
I've created a patch which I think fixes this, and put it here:
http://pastebin.com/m272f815c
The patch was built against a CVS snap from today:
php5.3-200808070630
Reproduce code:
---------------
<?php
class aParent {
public static function staticTest() {
var_dump(property_exists("A", "prot"));
var_dump(A::$prot);
}
}
class A extends aParent { protected static $prot = "prot"; }
echo "\nparent scope:\n";
aParent::staticTest();
?>
Expected result:
----------------
parent scope:
bool(true)
string(4) "prot"
Actual result:
--------------
parent scope:
bool(false)
string(4) "prot"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45743&edit=1
Thread (9 messages)