PHP에서 불리언 값의 느슨한 비교
이전 예시에서 비교를 위해
=== 연산자를 사용했습니다. 이 경우 우리의 변수는
true와 값과 타입 모두 동일한지
비교되었습니다.
우리의 문제에서는
== 연산자도 사용할 수 있습니다. 만약 변수 test에
항상 true 또는 false 중 하나의 값만
들어온다면, 아무런 변화도 없을 것입니다:
<?php
$test = true; // 여기에는 true 또는 false를 씁니다
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
그러나 만약 변수 $test에
어떤 값이든 들어올 수 있다면, 모든 것이 훨씬
복잡해집니다. 그런 경우, 변수에
불리언 값이 아닌 값이 들어오면, 그 값은
먼저 불리언 타입으로 변환된 후에만
비교될 것입니다.
예를 들어, 우리 변수에
숫자 1이 있다고 가정해 봅시다. 이 경우 먼저
논리 타입, 즉
true로 변환될 것입니다. 그리고 나서 비교가 수행됩니다:
<?php
$test = 1;
if ($test == true) {
echo '+++'; // 이것이 동작합니다. 왜냐하면 1 == true는 참이기 때문입니다
} else {
echo '---';
}
?>
반면에, 예를 들어 숫자 0은
false로 변환됩니다. 그래서 우리의 조건은 결과적으로
거짓이 될 것입니다:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---'; // 이것이 동작합니다. 왜냐하면 0 == true는 참이 아니기 때문입니다
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
$test = 1;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
$test = 0;
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
$test = 1;
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
$test = 1;
if ($test != true) {
echo '+++';
} else {
echo '---';
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
$test = '';
if ($test == false) {
echo '+++';
} else {
echo '---';
}
?>
코드를 실행하지 말고, 화면에 무엇이 출력될지 결정하세요:
<?php
if ($test == true) {
echo '+++';
} else {
echo '---';
}
?>