⊗ppOpMgTS 87 of 107 menu

Η μαγική μέθοδος toString στην ΑΑΠ στην PHP

Η πρώτη μαγική μέθοδος που θα μελετήσουμε ονομάζεται __toString. Αυτή καλείται όταν γίνεται προσπάθεια μετατροπής μιας στιγμιότυπου κλάσης σε συμβολοσειρά. Ας δούμε τι σημαίνει αυτό. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση User:

<?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; } } ?>

Ας δημιουργήσουμε ένα αντικείμενο αυτής της κλάσης:

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

Τώρα ας προσπαθήσουμε να εκτυπώσουμε το δημιουργημένο αντικείμενο μέσω echo:

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

Η προσπάθεια εκτύπωσης ενός αντικειμένου μέσω echo αποτελεί μετατροπή σε συμβολοσειρά. Σε αυτήν την περίπτωση, η PHP θα εμφανίσει σφάλμα, καθώς τα αντικείμενα δεν μετατρέπονται απλώς σε συμβολοσειρά.

Για να αποφύγουμε το σφάλμα, πρέπει να πούμε ρητά στην PHP τι να κάνει όταν προσπαθούμε να μετατρέψουμε ένα αντικείμενο σε συμβολοσειρά. Για αυτό υπάρχει η μαγική μέθοδος __toString.

Εάν υλοποιήσουμε μια τέτοια μέθοδο στον κώδικα της κλάσης μας, τότε το αποτέλεσμα αυτής της μεθόδου (δηλαδή αυτό που επιστρέφει μέσω return) θα είναι η αναπαράσταση του αντικειμένου ως συμβολοσειρά.

Ας υποθέσουμε ότι θέλουμε, όταν γίνεται προσπάθεια εκτύπωσης του αντικειμένου μέσω echo, να εμφανίζεται το όνομα του χρήστη. Αυτό σημαίνει ότι πρέπει να υλοποιήσουμε τη μέθοδο __toString και να επιστρέψουμε σε αυτήν την τιμή της ιδιότητας name:

<?php class User { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } // Υλοποιούμε την καθορισμένη μέθοδο: public function __toString() { return $this->name; } public function getName() { return $this->name; } public function getAge() { return $this->age; } } ?>

Ας δοκιμάσουμε:

<?php $user = new User('john', 25); echo $user; // θα εκτυπώσει 'john' - λειτουργεί! ?>

Δημιουργήστε μια κλάση User, στην οποία θα υπάρχουν ιδιότητες name και surn. Κάντε έτσι ώστε όταν εκτυπώνεται το αντικείμενο μέσω echo στην οθόνη να εμφανίζεται μια συμβολοσειρά με το όνομα και το επώνυμό του χρήστη.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη