개발자

php 데이터형 질문

2023년 10월 12일조회 93

안녕하세요 php 공부하는데, 공백이 없는 빈문자열 ""은 Null(값이없음)이라고 하길래, $string = ""; var_dump($string); 으로 빈문자열 ""의 데이터형을 보는데, Null이 아니라 string(0) "" 으로 출력되네요. 제가 잘못이해 하고있는 것인가요? 왜 이런 결과가 출력되는지 궁금합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

박신영님의 프로필 사진

안녕하세요. php 뿐만 아니라 대부분의 언어에서 빈문자열("") 과 null을 구분해서 사용합니다. 빈 문자열 ""은 값이 없는 '문자열' 이며, null은 아무 값도 가지지 않는 변수 입니다. 타입으로 보면 "" 는 string 타입이고 null은 NULL 타입입니다. ( https://www.w3schools.com/php/php_datatypes.asp ) 데이터형은 한번에 이해가 안될 수도 있습니다. 계속해서 천천히 반복해서 공부 해 보세요~

CGYOU님의 프로필 사진

잘못 이해한것 같습니다. 말그대로 “”은 메모리 할당 되여 메모리 주소가 생성되지만 null은 메모리 주소가 생성되지 않습니다. 변수에 빈 문자열 과 null을 각각 저장하고 isset함수 호출해보시면 isset("")는 true를 반환하지만, isset(null)은 false를 반환합니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2023년 10월 12일

안녕하세요. 같은 질문을 하신 것 같습니다. PHP에서 빈 문자열 ("")과 NULL은 실제로 다른 데이터 유형입니다. 빈 문자열은 문자열 자료형이지만, 그 안에 아무런 값이 들어있지 않아 길이가 0인 경우입니다. 반면 NULL은 아예 값 자체가 없음을 의미합니다. 변수에 값이 할당되지 않았거나 unset() 함수를 사용해 명시적으로 변수의 값을 제거한 경우 NULL이 됩니다. 즉, $string = ""; 일 때는 $string의 값이 빈 문자열임으로 string(0) ""으로 표시되고, $string = NULL; 이나 unset($string); 가 호출된 후 var_dump($string); 하게 되면 NULL로 표시가 됩니다. 따라서 공백 없는 빈문자열 ""와 Null은 서로 다른 개념으로 이해하시면 됩니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!