⊗ppOpMgTS 87 of 107 menu

PHP'de OOP'de Sihirli toString Metodu

İnceleyeceğimiz ilk sihirli metodun adı __toString'dir. Bir sınıf örneğini string'e dönüştürme girişiminde çağrılır. Bunun ne anlama geldiğini anlayalım. Diyelim ki User adında bir sınıfımız var:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Bu sınıfın bir nesnesini oluşturalım:

<?php $user = new User('john', 25); ?>

Şimdi oluşturulan nesneyi echo ile yazdırmaya çalışalım:

<?php $user = new User('john', 25); echo $user; ?>

Bir nesneyi echo ile yazdırmaya çalışmak, string'e dönüştürmektir. Bu durumda PHP hata verecektir, çünkü nesneler bu şekilde doğrudan string'e dönüştürülemez.

Hatayı gidermek için, bir nesneyi string'e dönüştürme girişiminde PHP'ye ne yapacağını açıkça söylemeliyiz. __toString sihirli metodu tam olarak bu işe yarar.

Sınıfımızın kodunda bu metodu tanımlarsak, bu metodun sonucu (yani return ile döndürdüğü değer) nesnenin string temsili olacaktır.

Diyelim ki bir nesneyi echo ile yazdırmaya çalıştığımızda, kullanıcının adının yazdırılmasını istiyoruz. O halde __toString metodunu yapalım ve içinde name özelliğinin değerini döndürelim:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Belirtilen metodu uygulayalım: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Test edelim:

<?php $user = new User('john', 25); echo $user; // 'john' yazdıracak - her şey çalışıyor! ?>

name ve surn özelliklerine sahip bir User sınıfı yapın. Nesneyi echo ile ekrana yazdırdığınızda, kullanıcının adı ve soyadı olan bir string'in yazdırılmasını sağlayın.

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