6epkyT
Новичок
Как правильно поступить при работе с наследованием классов?
Допустим есть следующие наследование классов:
Интересует следующее:
как сделать так, чтобы
- если не выполняется какое-то условие в конструкторе класса A, то возвращался "NULL-объект"
- при этом требуется получить сообщение об ошибке, из-за которого невозможно создание экземпляра класса.
Единственное, что пока приходит в голову - ввести еще один метод в класс A, который будет определять возможно ли использовать экземпляр класса или нет.
Как вообще поступают в таких случаях?
Допустим есть следующие наследование классов:
PHP:
// Error class
class Error {
var $err;
// constructor
function Error($err_mess)
{
$this->err = $err_mess;
}
// returns error message
function getError()
{
return $this->err;
}
}
// A
class A extends Error {
var $foo;
function A($f)
{
if (!$f)
{
$this->err = 'Error in A class';
// settype(&$this, 'null'); // по смыслу было бы хорошо возвращать NULL значение
return false;
}
$this->foo = 'Created in A';
}
function getFoo()
{
return $this->foo;
}
}
// -----------------------------------------------------------------------------------------
// Объект создается
$ob_a1 = new A(true);
if (!$ob_a1)
{
echo $ob_a1->getError();
}
echo $ob_a1->getFoo();
// -----------------------------------------------------------------------------------------
//
$ob_a2 = new A(false);
if (!$ob_a2)
{
echo $ob_a2->getError();
}
echo $ob_a2->getFoo();
как сделать так, чтобы
- если не выполняется какое-то условие в конструкторе класса A, то возвращался "NULL-объект"
- при этом требуется получить сообщение об ошибке, из-за которого невозможно создание экземпляра класса.
Единственное, что пока приходит в голову - ввести еще один метод в класс A, который будет определять возможно ли использовать экземпляр класса или нет.
Как вообще поступают в таких случаях?