Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in älteren PHP-Versionen (vor 5.5) auf geschützte Objekteigenschaften zugreifen?
Zugriff auf geschützte Objekteigenschaften in PHP
Die objektorientierte Programmierung von PHP bietet drei Zugriffsmodifikatoren: öffentlich, geschützt und privat. Allerdings kann es bei der Arbeit mit bestimmten Objekten frustrierend sein, dass nicht direkt auf geschützte Eigenschaften zugegriffen werden kann. In diesem Artikel wird eine Lösung zum Abrufen geschützter Eigenschaften in PHP-Versionen vor 5.5 untersucht.
ReflectionClass zur Rettung
Vor PHP 5.5 bot die ReflectionClass-Klasse eine Methode dazu Zugriff auf geschützte Eigenschaften. Die folgende Funktion zeigt, wie:
function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); }
Mit dieser Funktion können Sie auf geschützte Eigenschaften zugreifen, indem Sie das Objekt und den Eigenschaftsnamen als Argumente übergeben. Nehmen wir zum Beispiel das Objekt in Ihrem Beispiel:
$value = accessProtected($obj, '_value');
Diese Methode ruft effektiv die geschützte _value-Eigenschaft ab und speichert sie in der $value-Variable.
Hinweis für PHP 5.2 .17
Während die ReflectionClass-Lösung in Ihrer lokalen Umgebung effektiv war, ist sie möglicherweise nicht auf Servern verfügbar, auf denen die PHP-Version ausgeführt wird 5.2.17. Leider gibt es in solchen PHP-Versionen keine alternative Methode für den Zugriff auf geschützte Eigenschaften.
Das obige ist der detaillierte Inhalt vonWie kann ich in älteren PHP-Versionen (vor 5.5) auf geschützte Objekteigenschaften zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!