(PECL classkit >= 0.1)
classkit_method_redefine — Verilen yöntemin kodunu devingen olarak değiştirir
$sinifadi
, string $yontemadi
, string $degistirgeler
, string $kod
[, int $bayraklar = CLASSKIT_ACC_PUBLIC
] ) : boolBilginize: Bu işlev çalışmakta olan yöntemi değiştirmekte kullanılamaz.
Bu işlev DENEYSELDİR. Bu işlevin davranışı, ismi ve belgeleri PHP'nin sonraki sürümlerinde hiçbir duyuru yapılmaksızın değiştirilebilir. Bu riski göze alamayacaksanız bu işlevi kullanmayın.
sinifadiYeniden tanımlanacak yöntemin sınıfı
yontemadiYeniden tanımlanacak yöntem
degistirgelerYöntemin virgülle ayrılmış değiştirgeler listesi
kod
yontemadi çağrıldığında işleyecek olan yeni kod
bayraklar
Yöntem
CLASSKIT_ACC_PUBLIC,
CLASSKIT_ACC_PROTECTED veya
CLASSKIT_ACC_PRIVATE tiplerinden biri olabilir
Bilginize:
Bu değiştirge, PHP 5'den itibaren kullanılabilir, öncesinde bütün yöntemler açıktır (public).
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnek 1 - classkit_method_redefine() örneği
<?php
class Example {
function foo() {
return "foo!\n";
}
}
// Example nesnesi oluştur
$e = new Example();
// Example::foo() (yeniden tanımlamadan önce yöntem çıktısı)
echo "Before: " . $e->foo();
// 'foo' yöntemini yeniden tanımla
classkit_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
CLASSKIT_ACC_PUBLIC
);
// Example::foo() (yeniden tanımlamadan sonra yöntem çıktısı)
echo "After: " . $e->foo();
?>
Yukarıdaki örneğin çıktısı:
Before: foo! After: bar!