我還在玩PHP和OOP。但不明白如何從班級中撤回錯誤。PHP類中的錯誤處理
索引文件
include 'class.php';
$test = new magic('', '', '33');
$test->getfullname();
foreach ($test->get_errors() as $error) {
echo $error . '<br>';
}
類:
class magic
{
private $name;
private $surname;
private $age;
private $errors = array();
function __construct($name, $surname, $age)
{
$this->name = $name;
$this->surname = $surname;
$this->age = $age;
}
public function get_errors()
{
return $this->errors;
}
public function getname()
{
if (!empty($this->name)) {
return true;
} else {
array_push($this->errors, 'Please check name');
return false;
}
}
public function getsurname()
{
if (!empty($this->surname)) {
return true;
} else {
array_push($this->errors, 'Please check surname');
return false;
}
}
public function getfullname()
{
if (($this->getname()) && ($this->getsurname())) {
echo $this->name . ' ' . $this->surname;
}
}
}
我的問題是,爲什麼當名字或姓氏爲空,則返回請檢查名字或姓氏,但是當兩者都是空的,則返回只有第一?如何在PHP類中對這些類型的錯誤進行蠟燭處理,並且最佳做法是什麼? 我不認爲我可以在這種情況下使用try/catch例外。
短路評價。如果'getName()'返回false,那麼PHP知道你的'&&'不能評價爲真,所以它不會打擾調用'getSurname',因爲它的返回值與確定&&''值無關。 –
@MarcB但一般來說這非常正確? –
http://php.net/manual/en/language.operators.logical.php。請注意示例中的前4個代碼行。 –