'PHP 틀리기 쉬운 오류'에 해당되는 글 1건

728x90

PHP 함수를 구현한 코드에 버그가 있다고는 생각도 못했다.

그런데 입력값이 공백인 경우와 입력값이 0인 경우 동일한 결과를 처리하고 있다는 걸 알고 깜짝 놀랐다.

 

<?php
ini_set("display_startup_errors"1);
ini_set("display_errors"1);
error_reporting(E_ALL);
 
$aaa = "";
$bbb = 0;
 
if(empty($aaa&& empty($bbb)){
    echo 'aaa, bbb 둘다 값없슴<br/>';
else {
    echo 'aaa : '.$aaa.', bbb : '.$bbb.'<br/>';
}
 
echo 'aaa : '.Filter($aaa).'<br/>';
echo 'bbb : '.Filter($bbb).'<br/>';
 
function Filter($data){
    if(empty(trim($data))) {
        if($data === 0return 0;
        return '';
    }
    // 이하 함수 내용은 생략
}
?>

 

if문에서 둘다 입력값이 없는 경우를 체크하기 위한 함수를 구현하고, 0이 입력된 값을 체크했는데 원하지 않는 결과가 나왔다.

그래서 Filter 함수에서 data가 정확하게 0 을 입력한 경우에는 0을 반환하도록 코드를 보완했다.

 

if($keyword) {

 

}

를 할때에도 값이 0이 들어오면 false 로 인식되어 실제 값을 인식하지 못하는 현상이 발생한다.

그러므로 if(strlen($keyword)<1) 로 길이를 체크하여 길이가 없는 경우를 입력 값이 없는 경우로 간주하도록 구현하여 오류 발생을 방지하는 것도 방법이다.

 

 

 

블로그 이미지

Link2Me

,