據我所知,構造函數不返回值。我在下面面臨的問題是,我不得不在每個子類的方法中重複調用check_error()
來查看父類$error
數組是否存在任何錯誤。在構造函數中返回值以避免代碼中的重複使用
是否有任何機會改變我的代碼來刪除複製,使其更加用戶友好和可維護?
感謝
class RestfulRequest extends Restful
{
public function __construct()
{
parent::__construct();
if (is_array($this->error))
{
return 'Error found';
}
}
..
..
..
}
我知道上面的代碼是不可能的,但我只是將告訴你,我需要在首位的。無需重複,只需在每次啓動中檢查一次。
abstract class Restful
{
public $error = array('error1', 'error2');
abstract public function check_error();
abstract public function method_one();
abstract public function method_two();
}
class RestfulRequest extends Restful
{
public function __construct()
{
parent::__construct();
}
public function check_error()
{
return (is_array($this->error)) ? false : true;
}
public function method_one()
{
if ($this->check_error() === false)
{
return 'Error found';
}
return 'No error';
}
public function method_two()
{
if ($this->check_error() === false)
{
return 'Error found';
}
return 'No error';
}
}
$obj_restful = new RestfulRequest();
echo $obj_restful->method_one();
echo $obj_restful->method_two();
拋出異常。 – 2013-02-15 14:15:06