私はCode Completeを読んでいますが、その中には、変数を二重の目的で使用しないように警告するステートメントがあります。たとえば、次のようになります。
1) If a variable is a number, it contains error code.
2) If a varibale is array, it contains data.
$text
以下のコード スニペットの変数を使用して、プログラムで行っていることはまさにそれです。
$text = $editor->getTextForLinking($data_array['idText']);
if (Arr::is_array($text)) {
...
} else {
Log::instance()->add(Log::Error, $text);
$this->response->body("Text can't be retrieved");
}
メソッド getTextForLinking() にアクセスできるので、変更できます。二重の目的で望ましくない状況を排除するために、どのように変更できますか?
次のような例外を使用したくありません。
$text = Array();
try {
$text = $editor->getTextForLinking($data_array['idText']);
} catch(SomeException $e) {
Log::instance()->add(Log::Error, $text);
$this->response->body("Text can't be retrieved");
}