Sobes.tech
Junior — Middle

Ako je možné programovo pristúpiť k súkromným poliam triedy bez úpravy jej zdrojového kódu?

sobes.tech AI

Odpoveď od AI

V PHP môžete pomocou reflexie (Reflection) pristupovať k súkromným poliam triedy. To umožňuje získať prístup k vlastnostiam a metódam, aj keď sú deklarované ako private alebo protected, bez zmeny zdrojového kódu triedy.

Príklad:

class MyClass {
    private $secret = 'hidden';
}

$obj = new MyClass();

$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty('secret');
$property->setAccessible(true); // sprístupní súkromnú vlastnosť

echo $property->getValue($obj); // vypíše 'hidden'

Týmto spôsobom, pomocou ReflectionProperty::setAccessible(true), môžete získať a upraviť súkromné polia.