Lees van nie-bestaande eienskap in OOP in PHP
Kom ons probeer om data in 'n nie-bestaande eienskap te skryf - dit sal werk:
<?php
$test = new Test;
$test->prop3 = 3; // skryf 3
echo $test->prop3; // sal 3 uitvoer
?>
Kom ons sê ons wil nie toelaat dat daar in
nie-bestaande eienskappe geskryf word nie.
En, in die algemeen, wil ons slegs skryfwerk
in eienskappe prop1
en prop2 toelaat.
Dit is maklik om te doen - dit is voldoende om in die metode __set
die ooreenstemmende voorwaarde by te voeg:
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
// Laat ons 'n voorwaarde skryf:
if ($property == 'prop1' or $property == 'prop2') {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>
As daar baie sulke eienskappe is, is dit nie baie gerieflik om hulle almal in die voorwaarde op te som nie.
Kom ons skryf die eienskappe wat vir skryfwerk toegelaat word
in 'n array en ons sal die teenwoordigheid van die eienskap
in hierdie array met behulp van die funksie
in_array kontroleer:
<?php
class Test
{
private $prop1;
private $prop2;
public function __set($property, $value)
{
$properties = ['prop1', 'prop2']; // toegelate eienskappe
if (in_array($property, $properties)) {
$this->$property = $value;
}
}
public function __get($property)
{
return $this->$property;
}
}
?>