У меня есть класс с объявленными свойствами. Вся суть класса и его расширений состоит в том, что мне нужно, чтобы они всегда были доступны, даже если null, на другом объекте. Так он выглядит:Магический метод в PHP для запуска метода при объявлении свойства?
class Wrapper {
public $a = "";
public $b = "";
public $c = "";
public function Wrapper() {
$this -> wrapped = new Wrapped();
foreach($this as $key => $val) {
if($key != 'wrapped') {
$this -> wrapped -> $key = $val;
}
}
}
}
Но после создания объекта, я хочу, чтобы иметь возможность перезаписать заявленные значения непосредственно, так:
$wrap_test = new Wrapper();
$wrap_test -> a = 12;
Таким образом, вместо того, чтобы писать метод или с помощью $wrap_test -> wrapped -> a -> 12
, я искал эквивалент __set(), который вызывал бы метод всякий раз, когда любое свойство задано.
Есть ли это?
Perfect. Теперь единственная проблема - установить свойство из самого класса. Я думаю, у меня есть идея для этого, хотя ... – Anthony
Вот что я придумал (это позволяет избежать статических переменных): '\t $ og_properties = array_keys (array_intersect (get_class_vars (get_class ($ this)), get_object_vars ($ это))); \t \t \t если (in_array ($ имя, $ og_properties)!) { \t \t $ это -> $ имя = $ значение; \t} else {' – Anthony