PHP의 마법 기능을 사용하여 정렬 할 수 있습니다. A 클래스가 있다고 가정하면 A의 "인스턴스"를 사용할 수있는 몇 가지 추가 메서드가 있습니다.
class A {
public $publicA;
public function doA() {
$this->publicA = "Apple";
}
}
class B {
public $publicB;
public function doB() {
$this->publicB = "Bingo";
}
private $object;
public function __construct($object) {
$this->object = $object;
}
public function __call($name, $arguments) {
return call_user_func_array(array($this->object, $name), $arguments);
}
public function __get($name) {
return $this->object->$name;
}
public function __set($name, $value) {
$this->object->$name = $value;
}
}
$b = new B(new A);
$b->doA();
$b->doB();
echo "$b->publicA, $b->publicB";
인스턴스 $ b에는 A와 B의 메소드와 특성이 있습니다.이 기술을 확장하여 여러 클래스의 기능을 집계 할 수 있습니다.
시도 할 것인가? 당신의 플러그인이 상속 한 클래스? 이것은 꽤 심각한 디자인 결함을 말해줍니다. 실제로 이렇게해야 할 이유가 없으며 쉽게 할 수있는 방법이 없습니다. – meagar
당신은 틀린 무엇인가 틀리게한다. 플러그인 디자인이 깨졌습니다. 기술적으로는 동적 문자열 데이터를 평가하거나 포함 할 수 있으므로 원하는대로 만들 수 있습니다. 잘못된 디자인을 현명하게 수행하는 것입니다. – hakre
이전 자바 스크립트 프로토 타입 상속 경험을 통해 PHP 상속을 받고 있다고 생각하십니까? 당신은 고전적인 상속을 읽을 필요가 있습니다. –