HTML 폼에서 전송된 값은 NULL이 될 수 있을까?
결론부터 말하면 불가능합니다. PHP에서 POST나 GET으로 전달되는 값은 절대 null이 될 수 없습니다. 값이 선택되지 않은 경우에도 서버로 전달되는 것은 빈 문자열('')입니다.
따라서 HTML SELECT/OPTION 요소의 값을 null처럼 다루고 싶다면, 전달받은 빈 문자열을 직접 null로 변환하는 추가적인 처리가 필요합니다.
빈 문자열을 NULL로 변환하는 예제
아래 코드는 POST로 전달된 값이 빈 문자열인지 검사한 후, 해당 값을 null로 할당하는 방법을 보여줍니다.
if ($_POST['value'] === '') {
$_POST['value'] = null;
}
echo 'Null assigned';실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Null assigned
추가 팁: 여러 입력값 일괄 처리하기
폼에서 넘어오는 입력값이 많다면 아래와 같이 반복문을 활용해 모든 빈 문자열을 한 번에 null로 변환할 수 있습니다.
foreach ($_POST as $key => $val) {
if ($val === '') {
$_POST[$key] = null;
}
}이러한 변환 과정은 데이터베이스에 값을 저장할 때 특히 유용합니다. MySQL 등의 데이터베이스에서 NULL과 빈 문자열('')은 서로 다른 값으로 취급되기 때문에, 의도에 맞게 값을 정규화해 주는 것이 중요합니다.