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