私はまだ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行に注意してください。 –