функция — PHP геттер и сеттер вместе

Я работаю над личным проектом на PHP и, как и большинство классов, которые мне нужны, мне нужны функции получения / установки.

У меня была мысль и я провел некоторое исследование, но не смог найти ответ. Вместо того, чтобы определять две функции — одну get и одну set — почему они не могут быть обработаны одной функцией?

function myVar ($newVar = NULL) {
if(isset($newVar)) {
$this->var = $newVar;
} else {
return $this->var;
}
}

Есть ли какие-либо недостатки в этом, что я, возможно, не вижу?

0

Решение

Вы могли бы использовать __get а также __set волшебная пыль Но есть и обратная сторона: вы потеряете автозаполнение IDE, генерацию PHPDoc, наследование. Это помогает не писать код, но он не чистый, у вас нет логики public / protect / private. То же самое для вашего метода.

class MyClass {
private $one;
private $two;

public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}

public function __set($property, $value) {
if (property_exists($this, $property)) {
$this->$property = $value;
}

return $this;
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]