Ben bu bir çözüm geliyor zor bir zaman sahip oldum. Hepinizin bana yardımcı olabilir umuyorum.
En iyi bir örnekle anlattı:
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();
Ben çocuk zaten başlatılmış olan bir ebeveynden özellikleri ve yöntemleri miras istiyorum.
EDIT: Teşekkürler tüm yanıtları için - Sana biraz bilgi vereyim. Ben bir çiftleşmiş sistem yapmaya çalışıyorum. Ben iki sınıf var - Tag.php söylüyorlar, ve Form.php.
Ben bu gibi bakmak istiyorum:
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();
The reason I don't like the composite pattern is that it doesn't make sense to me why I would be passing in an instance of Tag to the constructor of one of its subclass, afterall - Form is a type of Tag right?
Thanks! Matt Mueller