(PHP 5)
ReflectionProperty::__construct — Bir ReflectionProperty nesnesi oluşturur
Bir ReflectionProperty nesnesi oluşturur.
Bu işlev hala belgelendirilmemiştir; sadece değiştirge listesi mevcuttur.
Özelliği içeren sınıfın ismi.
Yansıtılacak özelliğin ismi.
Hiçbir değer dönmez.
Private veya protected sınıf özelliklerinin değerlerini değiştirme veya döndürme girişimleri bir istisna oluşmasına sebep olur.
Örnek 1 - ReflectionProperty::__construct() örneği
<?php
class Dizge
{
public $uzunluk = 5;
}
// ReflectionProperty sınıfının bir örneğini oluşturalım
$prop = new ReflectionProperty('Dizge', 'uzunluk');
// Print out basic information
printf(
"===> %s%s%s%s '%s' özelliği %s olup\n" .
" %s değiştiriciye sahiptir.\n",
$prop->isPublic() ? ' public' : '',
$prop->isPrivate() ? ' private' : '',
$prop->isProtected() ? ' protected' : '',
$prop->isStatic() ? ' static' : '',
$prop->getName(),
$prop->isDefault() ? 'derleme sırasında bildirilmiş' :
'çalışma anında oluşturulmuş',
var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);
// Dizge sınıfının bir örneğini oluşturalım
$nesne= new Dizge();
// Mevcut değeri öğrenelim
printf("---> Değeri: ");
var_dump($prop->getValue($nesne));
// Değeri değiştirelim
$prop->setValue($nesne, 10);
printf("---> Yeni değer olarak 10 atandıktan sonra yeni değer: ");
var_dump($prop->getValue($nesne));
// Nesneyi dökümü
var_dump($nesne);
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
===> public 'uzunluk' özelliği derleme sırasında bildirilmiş olup array ( 0 => 'public', ) değiştiriciye sahiptir. ---> Değeri: int(5) ---> Yeni değer olarak 10 atandıktan sonra yeni değer: int(10) object(Dizge)#2 (1) { ["uzunluk"]=> int(10) }
Örnek 2 - ReflectionProperty sınıfından private ve protected özelliklerin değerlerini öğrenmek
<?php
class Foo {
public $x = 1;
protected $y = 2;
private $z = 3;
}
$obj = new Foo;
$prop = new ReflectionProperty('Foo', 'y');
$prop->setAccessible(true); /* PHP 5.3.0'dan itibaren */
var_dump($prop->getValue($obj)); // int(2)
$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* PHP 5.3.0'dan itibaren */
var_dump($prop->getValue($obj)); // int(2)
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
int(2) int(3)