У меня есть класс полностью частных переменных; только определенные переменные будут нуждаться в проверке данных при входе.
Прямо сейчас у меня есть:
public class Example
{
//**** Variables / Properties ****/
private $one;
private $two;
private $three;
//**** getter **** //
public function __get( $property )
{
if(property_exists($this,$property) {
return $this->$property;
}
}
// **** setter **** //
public function __set($property, $value)
{
if(property_exists($this,$property)) {
$this->$property = $value;
}
}
}
Что если я хочу проверить данные на двух долларах, а просто вернуть один и три доллара без какой-либо проверки данных?
Я спрашиваю об этом, потому что в моем классе намного больше переменных, чем это, и я ненавижу писать отдельные наборы и методы get для каждого свойства класса, когда только некоторые из них требуют определенного поведения.
Я понял это с помощью @JohnConde.
Сначала объявите, какие поля должны быть проверены в массиве.
private $dateArr = array("two");
затем
public function __set($property,$value) {
if(property_exists($this,$property)) {
foreach($dateArr as $dateProperty) {
if($property == $dateProperty) {
cleanDate($property,$value);
return;
}
}
return $this->$property;
}
}
Это позволяет делегировать определенные поля для проверки, но возвращает другие как есть.
Это полезно, потому что мне не нужно писать геттеры и сеттеры вручную.
Других решений пока нет …