반응형
Web Development · PHP
PHP 참/거짓 —
true · false · == 비교
불리언이 화면에 어떻게 출력되는지 — 의외의 결과
시작 오늘 분석할 코드
true와 false를 직접 print로 찍어보고, 비교 결과(5 == 5)도 출력한다. 결과가 처음 보면 의외다.
<?php print true; print "<BR>"; print false; print "<BR>"; print (5 == 5); // 비교 결과 = true print "<BR>"; print (5 == 4); // 비교 결과 = false ?>
실제 출력 미리보기
1
(빈 줄)
1
(빈 줄)
(빈 줄)
1
(빈 줄)
용어 핵심 키워드
true참 — 출력 시 "1"
false거짓 — 출력 시 빈 문자열 ""
==동등 비교 (느슨함 — 타입 변환 함)
===엄격 비교 (값 + 타입 모두)
var_dump()정확한 타입과 값 표시 — 디버깅
대소문자true/TRUE/True 모두 같음
1 의외의 출력 — true는 "1", false는 ""
print는 문자열만 출력한다. 그래서 PHP는 불리언을 print할 때 자동으로 문자열로 변환한다.
true→ 문자열"1"false→ 빈 문자열""(아무것도 안 보임)
⚠ 화면에 false가 안 보임 — 본 코드의 두 번째와 네 번째 줄은 빈 줄로 보인다. "false"라는 글자가 나오지 않는 게 PHP의 기본 동작이다.
2 정확한 값을 보려면 — var_dump()
디버깅용으로는 var_dump()가 표준이다. 타입과 값을 모두 보여준다.
var_dump(true); // bool(true) var_dump(false); // bool(false) var_dump(5 == 5); // bool(true) var_dump("hello"); // string(5) "hello" var_dump(42); // int(42)
💡 학습할 때 항상 var_dump 사용 — print는 결과만, var_dump는 타입까지. 처음엔 var_dump가 훨씬 도움이 된다.
3 ==과 ===의 차이
| 비교 | == (느슨) | === (엄격) |
|---|---|---|
| 5 == 5 | true | true |
| "5" == 5 | true (문자열 → 숫자) | false (타입 다름) |
| 0 == false | true | false |
| null == false | true | false |
| "" == 0 | true (PHP 7까지) | false |
⚠ 실무에선 ===를 쓰자 — == 의 자동 변환이 의도치 않은 버그를 만든다. 특히 사용자 입력 비교 시 위험. 가능하면 항상 ===.
반응형
4 "참 같은(truthy)" 값들
if ($x) 같은 조건문에서 false로 처리되는 값들을 외워두면 좋다. 그 외 모든 값은 true로 취급된다.
- false로 취급되는 값:
false자체0,0.0,"0"(정확히 문자열 "0"!)""(빈 문자열)null- 빈 배열
[]
- 그 외 모든 것은 true — "false"(문자열), "0.0"(문자열), -1, 0.1 등
5 비교 연산자 6종
| 연산자 | 의미 | 예 (5와 3) |
|---|---|---|
== |
같다 (느슨) | 5 == 3 → false |
!= 또는 <> |
다르다 | 5 != 3 → true |
=== |
같다 + 타입 같다 | 5 === "5" → false |
!== |
다르거나 타입 다르다 | 5 !== "5" → true |
< > <= >= |
크기 비교 | 5 > 3 → true |
<=> (PHP 7+) |
스페이스십 — -1/0/1 | 5 <=> 3 → 1 |
6 자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
| = 와 == 혼동 | 대입이 됨 (조건이 항상 true) | 비교는 ==, 가능하면 === |
| print false 결과 기대 | 빈 출력 — 디버깅 어려움 | var_dump 사용 |
| "0"이 false인 줄 모름 | 예상 못한 분기 | 외우거나 === 사용 |
| "false"라는 문자열을 false로 기대 | true로 평가됨 | 실제 false 또는 != "false" |
핵심 한 줄 요약
print true"1" 출력
print false빈 문자열 (안 보임)
var_dump()디버깅 — 타입+값
==느슨한 비교 — 타입 변환
===엄격 비교 — 권장
false 취급 값false / 0 / "" / null / []
Tags
#PHP #true #false #불리언 #var_dump #비교연산자 #엄격비교 #느슨한비교 #truthy #falsy #백엔드 #CSS #HTML #웹개발 #티스토리
▼ 티스토리 태그 입력란 복사용
PHP, true, false, 불리언, var_dump, 비교연산자, 엄격비교, 느슨한비교, truthy, falsy, 백엔드, CSS, HTML, 웹개발, 티스토리
반응형
'php' 카테고리의 다른 글
| PHP 오류 제어 연산자 — @ 완전 정리 (0) | 2026.06.26 |
|---|---|
| PHP 비트 AND 연산자 — & 완전 정리 (0) | 2026.06.26 |
| PHP 삼항 연산자 — ?: 한 줄 if-else 완전 정리 (0) | 2026.06.26 |
| PHP 증감 연산자 — ++ -- 후위/전위 완전 정리 (0) | 2026.06.25 |
| PHP 복합 대입 연산자 — += 완전 정리 (0) | 2026.06.25 |
왕진 블로그

댓글