Junior
Sınıfın hangi sihirli metodlarını biliyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
PHP'de "sihirli" olarak adlandırılan bir dizi özel yöntem vardır. Bunlar, sınıf nesneleriyle belirli işlemler sırasında otomatik olarak çağrılır. İşte bazıları:
__construct(): Yeni bir sınıf örneği oluşturulduğunda çağrılır. Nesnenin başlatılması için kullanılır.__destruct(): Nesne yok edildiğinde çağrılır (örneğin, betik çalışması sona erdiğinde veya açıkçaunset()çağrıldığında). Kaynakları serbest bırakmak için kullanılır.__call($name, $arguments): Erişilemeyen (mevcut bağlamda görünmeyen) bir yöntemi çağırmaya çalışırken çağrılır.$nameçağrılan yöntemin adı,$argumentsise onun argümanlarının dizisidir.__callStatic($name, $arguments):__call()ile benzerdir, ancak erişilemeyen statik bir yöntemi çağırmaya çalışırken çağrılır.__get($name): Erişilemeyen bir özelliği okumaya çalışırken çağrılır.$nameözelliğin adıdır.__set($name, $value): Erişilemeyen bir özelliğe yazmaya çalışırken çağrılır.$nameözelliğin adı,$valueise atanan değerdir.__isset($name):isset()veyaempty()kullanılarak erişilemeyen bir özelliğin varlığı kontrol edilirken çağrılır.$nameözelliğin adıdır.__unset($name): Erişilemeyen bir özelliğiunset()ile silmeye çalışırken çağrılır.$nameözelliğin adıdır.__sleep(): Nesneserialize()ile serileştirilmeden önce çağrılır. Serileştirilecek özelliklerin isimlerini içeren bir dizi döndürmelidir.__wakeup(): Nesneunserialize()ile deserialize edildikten hemen sonra çağrılır. Bağlantıları veya kaynakları geri yüklemek için kullanılabilir.__toString(): Nesneyi dizeye dönüştürmeye çalışırken çağrılır (örneğin,echoile çıktı alınırken). Nesnenin dize temsili döndürmelidir.__invoke(...$args): Nesne bir fonksiyon gibi kullanılırken çağrılır.__set_state(array $properties):var_export()ile nesne geri yüklenirken çağrılır.var_export()tarafından dışa aktarılan özelliklerin dizisini alır.__clone():clonekullanılarak nesne klonlandığında çağrılır. Derin kopyalar yapmak için kullanılır (örneğin, nesne içindeki nesneler).
Bu yöntemleri dikkatli kullanmak önemlidir, çünkü yanlış kullanım kodun tahmin edilemeyen davranışlara yol açmasına neden olabilir.