class Message {
protected $body;
public function setBody($body)
{
$this->body = $body;
}
public function getBody()
{
return $this->body;
}
}
class ExtendedMessage extends Message {
private $some;
public function __construct($somedata)
{
$this->some = $somedata;
}
public function getBody()
{
return $this->some;
}
}
$a = new Message;
$b = new ExtendedMessage('text');
$a->getBody(); // NULL`
$b->getBody(); // text`
если $ a создает класс сообщения, $ body имеет значение NULL, потому что для него ничего не установлено, и никакой __construct () не запускает (не существует) и устанавливает $ body в что-либо.
1 набор тела к чему-то иначе это всегда будет NULL
$a = new Message;
$a->setBody("my text here");
$a->getBody(); // returns "my text here"
2 добавить конструктор в класс сообщения
class Message {
protected $body;
public function __construct($a="") {
$this->body = $a;
}
// ur code as shown
}
чем бежать
$a = new Message("my text");
$a->getBody(); // returns "my text"
$b = new Message;
$b->getBody(); // returns "" - emtpy string
3 установить тело в классе сообщения на пустую строку в классе def
protected $body = ""; // or whatever u want
и он вернет val после построения класса с getBody ()
Других решений пока нет …