classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefineVerilen yöntemin kodunu devingen olarak değiştirir

Açıklama

classkit_method_redefine ( string $sinifadi , string $yontemadi , string $degistirgeler , string $kod [, int $bayraklar = CLASSKIT_ACC_PUBLIC ] ) : bool

Bilginize: Bu işlev çalışmakta olan yöntemi değiştirmekte kullanılamaz.

Uyarı

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.

Değiştirgeler

sinifadi

Yeniden tanımlanacak yöntemin sınıfı

yontemadi

Yeniden tanımlanacak yöntem

degistirgeler

Yö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).

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Ö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!

Ayrıca Bakınız