[PHP] metody dostępu do prywatnej własności klasy
Porady dla webmasterów

[PHP] metody dostępu do prywatnej własności klasy

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);
  1. rzutowanie do tablicy:
$a = (array) $a;
echo $a["\0A\0x"];
  1. "binding" (PHP 5.4)
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A');
echo $getX();
  1. ReflectionClass (PHP 5.3)
$aflection = new ReflectionClass("A");
$xProp = $aflection->getProperty("x");
$xProp->setAccessible(true);
echo $xProp->getValue($a);

Powiązane wpisy

więcej →