PHP Velho Oeste 2024

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

add a note add a note

User Contributed Notes 1 note

up
0
fdrean
7 years ago
This could lead to revolution in cli mode now that developers can load new code without restarting process.
To Top