- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 8 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
PHP'de bir closure, oluşturulduğu kapsamdaki değişkenlere, kapsam kapatıldıktan sonra bile erişebilen anonim bir fonksiyondur. İçinde use anahtar kelimesini belirtmeniz gerekir.
Kapatmalar, fonksiyon kodunu ve oluşturuldukları kapsamı kapsülleyen nesnelerdir. PHP 7 ile, bir nesne kapsamını bir kapatmaya bağlamak ve onu çağırmak için yeni bir closure::call() yöntemi tanıtıldı.
Kapatma Sınıfındaki Yöntemler
Closure sınıfı call() yöntemi de dahil olmak üzere aşağıdaki yöntemlere sahiptir:final class Closure {
/* Methods */
private __construct()
public static bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure
public bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): Closure
}
call () metodu Closure sınıfının statik bir metodudur. bind() veya bindTo() metotlarına kısayol olarak tanıtılmıştır.
bind() yöntemi, belirli bir bağlı nesne ve sınıf kapsamına sahip bir kapanışı çoğaltır; bindTo() yöntemi ise yeni bir bağlı nesne ve sınıf kapsamına sahip kapanışı çoğaltır.
call() yönteminin imzası şu şekildedir:
public Closure::call(object $newThis, mixed ...$args): mixed
call() metodu, kapanışı geçici olarak newThis'e bağlar ve verilen herhangi bir parametreyle çağırır.
PHP 7'den önceki sürümlerde bindTo() yöntemi aşağıdaki gibi kullanılabilir:
PHP:
<?php
class A {
private $x = 1;
}
// Define a closure Pre PHP 7 code
$getValue = function() {
return $this->x;
};
// Bind a clousure
$value = $getValue->bindTo(new A, 'A');
print($value());
?>
Program, bir kapanış nesnesi olan $getValue'yu A sınıfının nesnesine bağlar ve onun özel değişkeni $x'in değerini yazdırır – bu değer 1'dir.
PHP 7 ile bağlama, aşağıda gösterildiği gibi call() metodu ile gerçekleştirilir:
PHP:
<?php
class A {
private $x = 1;
}
// PHP 7+ code, Define
$value = function() {
return $this->x;
};
print($value->call(new A));
?>


