0
저는 현재 PHP 클래스 예제에서 다음 __get/__ 설정 방법이있다 :배열 및 비 배열 클래스 멤버 변수 모두에 대해 __get 및 __set 마법 메서드를 사용할 수 있습니까?
class example{
/*Member variables*/
protected $a;
protected $b = array();
public function __get($name){
return $this->$name;
}
public function __set($name, $value){
$this->$name = $value;
}
}
그러나, 표준 보호 변수를 설정 외에, 나는 또한 클래스 내에서 보호 배열을 설정할 수 있도록하고 싶습니다. 다른 질문을 살펴본 결과 __get/__ set 메서드를 사용하여 변수를 간단하게 설정하는 방법에 대한 일반적인 제안을 발견했지만 이러한 마법 메서드를 사용하여 두 배열과 비 배열을 모두 설정할 수있는 방법은 없습니다.
$fun = new $example();
$fun->a = 'yay';
$fun->b['coolio'] = 'yay2';
정말 인상적이라면 x) 그러나 나는 이것이 어떻게 문서화되지 않았는가? [** PHP magic methods **] (http://www.php.net//manual/en/language.oop5.magic.php) – MackieeE
이것은 간략하게 문서화되어 있지만 조금 더 깊이 파고 싶었습니다. get이 참조로 설정되면 set 함수는 이전과 동일하게 유지됩니까? 또한 참조가 포함 된 함수를 가져 오는 버그가 발생할 수 있으므로 배열을 처리하는 데 필요한 다른 함수 집합을 만드는 것이 좋습니다. – snehoozle
'$ fun-> b = something_else;' –