선언 된 속성을 가진 클래스가 있습니다. 클래스의 전체적인 점과 확장은 다른 객체에 대해 null이더라도 항상 사용할 수 있어야한다는 것입니다. 그러나 객체를 인스턴스화 한 후, 내가 직접 선언 된 값을 덮어 쓸 수 있도록하려면선언 된 속성이 설정되었을 때 메서드를 트리거하는 PHP의 Magic 메서드?
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 $ this)))); \t \t \t 경우 (와 in_array ($ 이름, $ og_properties)!) { \t \t $이 -> $ 이름 = $ 값; \t} else {' – Anthony