Luca Bruno blog

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.