Accessing simple private fields in PHP
A way of accessing private fields in PHP is by changing the accessibility of the fields themselves with http://php.net/manual/en/reflectionproperty.setaccessible.php.
However this approach requires PHP 5.3.
For PHP < 5.3 there’s another subtle way of accessing private properties:
function getPrivateProperty($fixture, $propname) {
try {
$arr = (array)$fixture;
} catch (Exception $e) {
}
$class = get_class($fixture);
$privname = “\0$class\0$propname”;
return $arr[$privname];
}
Usage is pretty straightforward, pass in the object and the property name as string. The property must be private and must be convertible to array.