Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Reflection – Teil 4: ReflectionProperty

Vorangegangene Teile:

Nun sind also die Properties dran, womit dann der vierteilige Reflection-Ausflug auch schon beendet ist. Wie bekannt beginnen wir wieder mit einem Mustercode

class D { 	/** 	 * this is a property 	 */ 	public $prop = array("a","b","c"); } 

Property erhalten

Der Weg um an das ReflectionProperty – Objekt zu kommen führt uns über das ReflectionClass – Objekt der Klasse.

$refclass = new ReflectionClass("D"); $refprop = $refclass->getProperty("prop"); 

DocBlock – Kommentar

print_r($refprop->getDocComment()); /**  * this is a property  */ 

Property-Name

print $refprop->getName();  //prop 

Property-Value

Hierbei erwartet getValue eine Instanz der Klasse als Parameter. Falls es sich um ein statisches Property handelt, ist hier null zu verwenden.

print_r($refprop->getValue(new D));  /* Array  (      [0] => a  	[1] => b  	[2] => c  ) */ 

Handelt es sich nicht um ein Public oder ein Protected – Property, fliegt eine ReflectionException.

Handelt es sich um ein Default-Property?

Steht das Property direkt im Code (zur „Compilezeit“ bekannt) oder kam es erst zur Laufzeit hinzu ($this->newProperty = …)?

var_dump($refprop->isDefault()); //bool(true) 

Modifier prüfen

Weitere Funktionen, die ebenfalls einen booleschen Wert zurückliefern sind hier: isPrivate, isProtected, isStatic.

var_dump($refprop->isPublic()); //bool(true) 

Das wars!

Es sei abschließend noch erwähnt, dass alle oben gemachten Aussasgen auch für statische Properties gültig sind. Wie in den anderen Teilen auch ist dies hier keine vollständige Auflistung, dafür schaut ihr am Besten direkt im Handbuch nach.

Und damit wars das mit der Reihe über die Reflection – hoffe ihr habt was mitgenommen!