Teoria mówi, że parametr prywatny klasy w PHP z założenia nie jest dostępny z zewnątrz. Mając więc klasę:
class A { private $x = 1; }
$a = new A();
echo $a->x; // spowoduje błąd
Możemy się spodziewać błędu podczas próby wyświetlenia zawartości zmiennej prywatnej.
Warto jednak znać pewne metody, pozwalające na dostęp do “ukrytej” wartości:
1) po prostu ją wyświetl:
print_r($a);
var_dump($a);
2) rzutowanie do tablicy:
$a = (array) $a;
echo $a["\0A\0x"];
3) “binding” (PHP 5.4)
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A');
echo $getX();
4) ReflectionClass (PHP 5.3)
$aflection = new ReflectionClass("A");
$xProp = $aflection->getProperty("x");
$xProp->setAccessible(true);
echo $xProp->getValue($a);