我正在阅读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");
}