This is an example PHP program that demonstrates how to access private and protected members with reflection.
<?php
class CMyTestClass {
public function __construct() {
$this->mdValue = 10.4;
}
private $mdValue;
private function MyPrivateMethod($sArgument) {
echo '<p>You passed in to the private method: '.$sArgument.'</p>';
}
static private $sdValue = 92.4;
static private function PrivateStaticMethod($sArgument) {
echo '<p>Passed in to private static method: '.$sArgument.'</p>';
}
}
$qReflectionMethod = new ReflectionMethod('CMyTestClass', 'MyPrivateMethod');
$qReflectionMethod->setAccessible(true);
$qTestClass = new CMyTestClass();
$qReflectionMethod->invoke($qTestClass, 'Something');
$qReflectionPrivateProp = new ReflectionProperty('CMyTestClass', 'mdValue');
$qReflectionPrivateProp->setAccessible(true);
echo '<p>The value of mdValue is '.$qReflectionPrivateProp->getValue($qTestClass).'</p>';
$qStaticReflectionMethod = new ReflectionMethod('CMyTestClass', 'PrivateStaticMethod');
$qStaticReflectionMethod->setAccessible(true);
$qStaticReflectionMethod->invoke($qTestClass, 'Something');
$qStaticPrivateProp = new ReflectionProperty('CMyTestClass', 'sdValue');
$qStaticPrivateProp->setAccessible(true);
echo '<p>The value of sdValue is '.$qStaticPrivateProp->getValue(CMyTestClass).'</p>';
?>
© 20072025 XoaX.net LLC. All rights reserved.