Core PHP

Accessing Private Members with Reflection

This is an example PHP program that demonstrates how to access private and protected members with reflection.

AccessingMembersWithReflection.php

<?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>';

?>
 

Output

 
 

© 2007–2025 XoaX.net LLC. All rights reserved.