⊗ppOpMgGP 88 of 107 menu

PHP'de OOP'de Sihir ile Özellik Alma

İnceleyeceğimiz bir sonraki sihirli metodun adı __get'dır. Bu metot, özel veya korumalı bir özelliğin değerini okumaya çalıştığınızda tetiklenir.

Eğer bir sınıfta __get metodunu uygularsanız, var olmayan veya gizli özelliklere yapılan tüm erişimler bu metot tarafından işlenecektir.

Bu durumda PHP otomatik olarak istenen özelliğin adını bu metodun ilk parametresine iletecek, ve bu metot tarafından döndürülen değer, erişilen özelliğin değeri olarak kabul edilecektir.

Muhtemelen henüz nasıl çalıştığı çok anlaşılır değil, bu yüzden pratik bir örneğe bakalım. Diyelim ki özel ve genel özelliklere sahip şöyle bir Test sınıfımız var:

<?php class Test { public $prop1 = 1; // genel özellik private $prop2 = 2; // özel özellik } ?>

Şimdi sınıfımıza, başlangıçta sadece erişilen özelliğin adını döndürecek olan sihirli __get metodunu ekleyelim:

<?php class Test { public $prop1 = 1; private $prop2 = 2; public function __get($property) { return $property; // sadece özellik adını döndür } } ?>

Oluşturulan sihirli metodun çalışmasını test edelim. Üç tür özelliğe erişelim: genel bir özelliğe, özel bir özelliğe ve var olmayan bir özelliğe:

<?php $test = new Test; // Genel özelliğe erişiyoruz: echo $test->prop1; // 1 çıktısını verir - yani özelliğin değeri // Özel özelliğe erişiyoruz: echo $test->prop2; // 'prop2' çıktısını verir - özellik adı // Var olmayan özelliğe erişiyoruz: echo $test->prop3; // 'prop3' çıktısını verir - özellik adı ?>

Gördüğünüz gibi, sihirli metodumuz özel ve var olmayan özelliklere erişime tepki veriyor, ancak genel özelliklere erişimi görmezden geliyor - onlar daha önce olduğu gibi çalışmaya devam ediyor.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet