채택완료
PHP 7.1 함수 리턴 타입이 다를 때
Copy
// $db는 PDO 입니다function sql_query($sql, $link = null): ?PDOStatement{ global $db; if ($link === null) { $link = $db; } $sql = trim($sql); $sql = preg_replace('#^select.*from.*[\s\(]+union[\s\)]+.*#i ', 'select 1', $sql); $sql = preg_replace('#^select.*from.*where.*`?information_schema`?.*#i', 'select 1', $sql); try { $rst = $link->query($sql); } catch (PDOException $ex) { return $ex; } return $rst;}
위와 같은 sql_query 함수인데 리턴 값이 평소에는 PDOStatement 입니다만,
예외 상황이 발생하면 PDOException 형태로 타입이 변환이 되는데요.
리턴 타입을 어떻게 하면 둘 다 에러없이 정상적으로 리턴이 될까요?
리턴 타입을 정하지 않으면 되긴 합니다만 멀티로 하는 방식이 혹시 있을까 궁금해서 물어봅니다.
답변 1개 / 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
이런 방식은 거부된 것으로 나오는데 그럼 언젠가는 다시 논의 될 내용인건가요?