"ленивый" __set(), есть идеи? Собствено внутри класса есть массив, в который часто пишутся / читаются данные в коде, вида:$this->fields['somefield'] = $someVal; для чтения я сляпал быстрый геттер:public function __get($name){ if($name == 'f'){ return (object) $this->fields; } else return false; } и теперь $this->f->somefield красиво отдает из массива значение по ключу. а с сеттером в стиле $this->f->somefield = $someval; что-то я туплю... Хелп... ПС: всем спасибо, опять же поймал себя на том что не всегда очевидные мелкие детали меняют картину в целом. Изврат нужен для переопределения ключей от нескольких сторонних апи с большим количеством полей, по этому код выходит скучный, мерзкий, однообразный и простынеподобный. Захотелось слегка упростить ручную работу.
Для реализации сеттера в стиле $this->f->somefield = $someval можно использовать магический метод __set(). Примерно так:
public function __set($name, $value){ if($name == 'f'){ // проверяем, что переданный $value является массивом if(is_array($value)){ $this->fields = $value; } } }
Теперь вы сможете устанавливать значения в массив fields, используя выражение $this->f->somefield = $someval. Надеюсь, это поможет вам в решении проблемы!
Для реализации сеттера в стиле $this->f->somefield = $someval можно использовать магический метод __set(). Примерно так:
public function __set($name, $value){if($name == 'f'){
// проверяем, что переданный $value является массивом
if(is_array($value)){
$this->fields = $value;
}
}
}
Теперь вы сможете устанавливать значения в массив fields, используя выражение $this->f->somefield = $someval. Надеюсь, это поможет вам в решении проблемы!