349 of 410 menu

Η μαγική μέθοδος __set

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

Σύνταξη

public function __set(string $name, mixed $value): void

Παράδειγμα

Ας δημιουργήσουμε μια κλάση που θα χρησιμοποιεί την __set για να πιάνει προσπάθειες ορισμού μη υπαρχουσών ιδιοτήτων:

<?php class User { private $data = []; public function __set($name, $value) { $this->data[$name] = $value; } public function getData() { return $this->data; } } $user = new User(); $user->email = 'test@example.com'; $user->age = 25; print_r($user->getData()); ?>

Αποτέλεσμα εκτέλεσης κώδικα:

Array ( [email] => test@example.com [age] => 25 )

Παράδειγμα

Χρήση της __set για επικύρωση δεδομένων πριν από τον ορισμό τους:

<?php class Product { private $price; public function __set($name, $value) { if ($name === 'price') { if (!is_numeric($value) || $value < 0) { throw new Exception('Μη έγκυρη τιμή τιμής'); } $this->price = $value; } } public function getPrice() { return $this->price; } } $product = new Product(); $product->price = 100; echo $product->getPrice(); ?>

Αποτέλεσμα εκτέλεσης κώδικα:

100

Δείτε επίσης

  • η μαγική μέθοδος __get,
    που πιάνει προσπάθειες ανάγνωσης μη προσβάσιμων ιδιοτήτων
  • η μαγική μέθοδος __isset,
    που πιάνει τον έλεγχο ύπαρξης ιδιοτήτων
Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη