Yansıtma Sınıflarının Genişletilmesi

Yerleşik sınıfların özelleştirilmiş sürümlerini oluşturmak istediğiniz takdirde (yöntemler yerine üye değişkenlere kolayca erişmek veya aracı yöntemlere sahip olmak ya da renkli HTML sürümünü oluşturmak istiyorsunuz diyelim), baştan sona hepsini genişletebilirsiniz.

Örnek 1 - Yerleşik sınıfların genişletilmesi

<?php

class My_Reflection_Method extends ReflectionMethod
{
public
$visibility = array();

public function
__construct($o, $m)
{
parent::__construct($o, $m);
$this->visibility = Reflection::getModifierNames($this->getModifiers());
}
}


class T {
protected function
x() {}
}


class U extends T {
function
x() {}
}

// Bilgiler görelim
var_dump(new My_Reflection_Method('U', 'x'));
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

 object(My_Reflection_Method)#1 (3) { ["visibility"]=> array(1) { [0]=> string(6) "public" } ["name"]=> string(1) "x" ["class"]=> string(1) "U" } 
Dikkat

Kurucunun üzerine yazıyorsanız, herhangi bir kod yazmadan önce ebeveynin kurucusunu çağırmayı unutmayın. Bunu yapmazsanız şöyle bir sonuç alırsınız: Fatal error: Internal error: Failed to retrieve the reflection object Türkçesi: Ölümcül hata: Dahili hata: reflection nesnesi alınamadı

To Top