Die magiese metode __set
Die magiese metode __set word outomaties uitgeroep wanneer daar gepoog word om waarde toe te ken aan 'n eienskap wat nie bestaan of nie in die huidige konteks toeganklik is nie. Die metode aanvaar twee parameters: die naam van die eienskap en die waarde wat probeer word om toe te ken.
Sintaksis
public function __set(string $name, mixed $value): void
Voorbeeld
Kom ons skep 'n klas wat __set sal gebruik om pogings om nie-bestaande eienskappe in te stel, te onderskep:
<?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());
?>
Resultaat van die kode-uitvoering:
Array
(
[email] => test@example.com
[age] => 25
)
Voorbeeld
Gebruik van __set om data te valideer voordat dit ingestel word:
<?php
class Product {
private $price;
public function __set($name, $value) {
if ($name === 'price') {
if (!is_numeric($value) || $value < 0) {
throw new Exception('Ongeldige prys-waarde');
}
$this->price = $value;
}
}
public function getPrice() {
return $this->price;
}
}
$product = new Product();
$product->price = 100;
echo $product->getPrice();
?>
Resultaat van die kode-uitvoering:
100