나는이 문제를 해결하는 데 어려움을 겪고 있습니다. 나는 너희 모두가 나를 도울 수 있기를 바라고있다. PHP에서 이미 초기화 된 부모를 자식으로 확장 시키십시오.
베스트 예를 들어 설명 :class Parent {
public $nationality;
function __construct($nationality)
{
$this->nationality = $nationality
}
}
class Child extends Parent {
function __construct() {
echo $this->nationality; // hispanic
}
}
// Usage:
$parent = new Parent('hispanic');
$child = new Child();
나는 아이가 이미 초기화 된 부모로부터 속성과 메서드를 상속합니다.
편집 : 답장을 보내 주셔서 감사합니다. 배경을 알려주세요. 저는 템플릿 시스템을 만들려고합니다. Tag.php와 Form.php라는 두 클래스가 있습니다.
I는 다음과 같이 그것을 싶습니다
나는 복합 패턴을 좋아하지 않는 이유는 그것이 내가 인스턴스를 전달 할 왜 나에게 이해가되지 않는다는 것입니다class Tag {
public $class_location;
public $other_tag_specific_info;
public $args;
function __construct($args)
{
$this->args = $args;
}
public function wrap($wrapper) {
...
}
// More public methods Form can use.
}
class Form extends Tag {
function __construct() {
print_r($this->args()) // 0 => 'wahoo', 1 => 'ok'
echo $this->class_location; // "/library/form/form.php"
$this->wrap('form');
}
function __tostring() {
return '<input type = "text" />';
}
}
// Usage:
$tag = new Tag(array('wahoo', 'ok'));
$tag->class_location = "/library/form/form.php";
$tag->other_tag_specific_info = "...";
$form = new Form();
태그의 생성자에 하위 클래스 중 하나 인 afterall - Form이 Tag 유형의 권리입니까?
감사합니다. Matt Mueller
저는 PHP가 계층 적 객체 캐스팅 (위/아래 캐스팅)을 수행하지 않으므로 이것이 가능하지 않다고 생각합니다. – BoltClock
'자식 '과'부모 '란 무엇입니까? 이런 식으로 모델링하는 것이 맞습니까? 일반적으로 상속을 사용하여 특정 클래스를보다 구체적으로 만들거나 기능을 그룹화합니다. '오리'와 마찬가지로 '새'는 '동물'입니다. 당신의 모범이 잘 선택되지 않은 것 같습니다. 이 경우, 두 객체 모두'Person' 클래스의 객체이고'parent' 속성을 가져야합니다. –
좋은 지적. 약간의 정보를 추가해 설명해 보겠습니다. – Matt