From: phpbugs at liwing dot de
Operating system: FreeBSD 5.0-CURRENT
PHP version: 4.3.1
PHP Bug Type: Feature/Change Request
Bug description: Overload hides properties in class methods, too
More complex classes which's properties should become protected may need to
modify / initializes some of their management properties in constructor or
in an important member method.
Imagine a central factory manager using a list of meta objects . Or a
public/private key manager class, which has to manager 3 lists, public
keys, private keys and passphrases.
If the list aren't hard-coded in each class but list objects as members
are used, a constructor like
class CertMgr
{
var $PublicKeys;
var $PrivateKeys;
function CertMgr()
{
$this->PublicKeys = & new List();
$this->PrivateKeys = & new List();
$this->PublicKeys->SetValue( "mine", "abcdefg" );
$this->PrivateKeys->SetValue( "mine", "secret-of-abcdefg" );
}
function __get( $pn, &$pv )
{
if( $this->PublicKeys->KeyExists( $pn ) )
{
$pv = $this->PublicKeys->GetValue( $pn );
return TRUE;
}
else
{
return FALSE;
}
}
} // end of class CertMgr
overload( "CertMgr" );
$myCertMgr = new CertMgr(); // will fail!
--
Edit bug report at http://bugs.php.net/?id=22434&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=22434&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=22434&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=22434&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=22434&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=22434&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=22434&r=support
Expected behavior: http://bugs.php.net/fix.php?id=22434&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=22434&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=22434&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=22434&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=22434&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=22434&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=22434&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=22434&r=gnused