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

Podziel się:   Facebook   Google+   Twitter   GG   E-mail  

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);

Powiązane artykuły

Kurs css

  • Kurs CSS dla niecierpliwych [cz 1/2]

    Co to jest CSS, po co go używać, jak go używać.. CSS - stylizowanie różnych elementów HTML, inaczej mówiąc: wizualizowanie/nadawanie odpowiedniego wyglądu strony www. Zaczynając kurs…

  • Kurs CSS dla niecierpliwych [cz 2/2]

    Kontynuacja przyspieszonego kursu dla niecierpliwych. Część 1/2 - Kurs CSS dla niecierpliwych 1/2 Zakładam, że znasz lub zapoznałeś/aś się już wstępnie z podstawami HTML, wiesz do czego…