349 of 410 menu

Magische methode __set

De magische methode __set wordt automatisch aangeroepen bij een poging om een waarde toe te kennen aan een eigenschap die niet bestaat of niet toegankelijk is in de huidige context. De methode accepteert twee parameters: de naam van de eigenschap en de waarde die wordt geprobeerd toe te kennen.

Syntaxis

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

Voorbeeld

Laten we een klasse maken die __set gebruikt om pogingen om niet-bestaande eigenschappen in te stellen te onderscheppen:

<?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()); ?>

Uitvoer van de code:

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

Voorbeeld

Gebruik van __set voor gegevensvalidatie voordat ze worden ingesteld:

<?php class Product { private $price; public function __set($name, $value) { if ($name === 'price') { if (!is_numeric($value) || $value < 0) { throw new Exception('Ongeldige prijswaarde'); } $this->price = $value; } } public function getPrice() { return $this->price; } } $product = new Product(); $product->price = 100; echo $product->getPrice(); ?>

Uitvoer van de code:

100

Zie ook

  • magische methode __get,
    die pogingen om ontoegankelijke eigenschappen te lezen onderschept
  • magische methode __isset,
    die de controle op het bestaan van eigenschappen onderschept
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren