在下面的代码中,IDE会在最后一个括号中提醒我"Missing return statement".这导致我在这里询问内部的返回try{}是否正常或应该在它之外.
非常感谢.
public function getFileNamesFromKeywords( array $ids, $format ) {
try {
if(self::$dbLink) {
$ids = implode(',',$ids);
$query = 'SELECT d.id, d.wfid, d.docid , k.keyword, k.value'.
'FROM keywords k'.
'INNER JOIN documents d '.
'ON k.document_id = d.id'.
'WHERE k.document_id IN ('.$ids.')';
$results = self::$dbLink->query($query);
if( $results === false ) {
throw new Exception('Ocurrió un error al consultar a la DB.', 500);
}
$results = $results->fetchAll(PDO::FETCH_ASSOC);
$filenames = $this->buildFileNames( $results, $ids, $format );
}
else {
throw new Exception('No hay una conexión establecida con la DB.', 500);
}
return $filenames;
}
catch(Exception $e) {
$this->error = 'Error al intentar conectar con la BD: ' . $e->getMessage();
}
} //<----- Missing return statement
Run Code Online (Sandbox Code Playgroud)
如果将return语句放置在函数中的任何位置,则预期该函数必须返回某些内容,并且由于您已将return语句放置在try-catch块中,因此当IDE评估代码时,它会注意到您没有在尝试中失败时有一个返回语句。
我建议在函数顶部创建一个初始化为false的$ response变量,然后为其分配$ filenames,然后在try-catch块返回$ response之后。
function getFilenames(){
$response = false;
try{
//your code
$response = $filenames;
}catch{
}
return $response;
}
Run Code Online (Sandbox Code Playgroud)
这样做可以确保函数始终返回所需结果或错误结果。
| 归档时间: |
|
| 查看次数: |
20379 次 |
| 最近记录: |