Junior — Middle
Hoe kun je programmatisch toegang krijgen tot private velden van een klasse zonder de broncode te bewerken?
sobes.tech AI
Antwoord van AI
In PHP kun je met behulp van reflection (Reflection) toegang krijgen tot private velden van een klasse. Dit stelt je in staat om eigenschappen en methoden te verkrijgen, zelfs als ze als private of protected zijn gedeclareerd, zonder de broncode van de klasse te wijzigen.
Voorbeeld:
class MyClass {
private $secret = 'hidden';
}
$obj = new MyClass();
$reflection = new ReflectionClass($obj);
$property = $reflection->getProperty('secret');
$property->setAccessible(true); // maakt private eigenschap toegankelijk
echo $property->getValue($obj); // zal 'hidden' tonen
Op deze manier kan met ReflectionProperty::setAccessible(true) private velden worden verkregen en gewijzigd.