Equality & Identity
Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 24번째.
PHP는 값이 같은지 확인하는 두 가지 방법을 제공합니다: 동등성 연산자 (==)와 일치 연산자 (===). 이 차이점을 이해하는 것은 신뢰할 수 있는 코드를 작성하는 데 중요합니다.
등호 연산자(==)는 값을 같은 유형으로 변환한 후 비교합니다. 이것을 "느슨한 비교"라고 합니다:
<?php
var_dump(5 == "5"); // bool(true) - 문자열이 숫자로 변환됨
var_dump(0 == false); // bool(true) - 둘 다 0이 됨
var_dump(1 == true); // bool(true) - 둘 다 1이 됨
?>동등성 연산자(===)는 값 과 타입을 모두 비교합니다. 변환이 일어나지 않으므로, 둘 다 정확히 일치해야 합니다:
<?php
var_dump(5 === "5"); // bool(false) - int vs string
var_dump(5 === 5); // bool(true) - same type and value
var_dump(0 === false); // bool(false) - int vs bool
?>"같지 않음" 비교를 위해 != (느슨한) 또는 !== (엄격한)을 사용하세요:
<?php
var_dump(5 != "5"); // bool(false) - 값이 같음
var_dump(5 !== "5"); // bool(true) - 타입이 다름
?>모범 사례로서, 예상치 못한 타입 변환 문제를 피하기 위해 ===와 !==을 선호하세요.
챌린지
쉬움입력에서 두 값을 읽으세요: 문자열로 된 숫자와 정수.
다음 비교를 평가하기 위해 등식 및 동일성 연산자를 사용하고, 각 결과를 var_dump()를 사용하여 새 줄에 하나씩 출력하세요:
- 느슨한 비교(
==)를 사용하여 문자열 값이 정수와 같은지 확인하세요 - 엄격한 비교(
===)를 사용하여 문자열 값이 정수와 같은지 확인하세요 - 느슨한 비교(
!=)를 사용하여 문자열 값이 정수와 같지 않은지 확인하세요 - 엄격한 비교(
!==)를 사용하여 문자열 값이 정수와 같지 않은지 확인하세요
참고: 첫 번째 값을 문자열로 유지하세요 (캐스팅하지 마세요). 두 번째 값을 정수로 캐스팅하세요.
예시:
입력값이 42와 42인 경우, 출력은 다음과 같아야 합니다:
bool(true)
bool(false)
bool(false)
bool(true)설명:
"42" == 42은 true입니다 (타입 변환 후 값이 같음)"42" === 42은 false입니다 (문자열 vs 정수 - 다른 타입)"42" != 42은 false입니다 (값이 같음)"42" !== 42은 true입니다 (타입이 다름)
치트 시트
PHP는 값을 비교하는 두 가지 방법을 가지고 있습니다:
동등성 연산자 (==) - 비교 전에 값을 동일한 유형으로 변환하는 느슨한 비교:
<?php
var_dump(5 == "5"); // bool(true) - 문자열이 숫자로 변환됨
var_dump(0 == false); // bool(true) - 둘 다 0이 됨
var_dump(1 == true); // bool(true) - 둘 다 1이 됨
?>일치 연산자 (===) - 값과 유형을 모두 확인하는 엄격한 비교:
<?php
var_dump(5 === "5"); // bool(false) - int vs string
var_dump(5 === 5); // bool(true) - 동일한 유형과 값
var_dump(0 === false); // bool(false) - int vs bool
?>불일치 연산자:
<?php
var_dump(5 != "5"); // bool(false) - 값이 같음 (느슨함)
var_dump(5 !== "5"); // bool(true) - 유형이 다름 (엄격함)
?>모범 사례: 예상치 못한 유형 변환을 피하기 위해 ===와 !==를 사용하세요.
직접 해보기
<?php
// 입력 읽기
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));
// TODO: 아래에 코드를 작성하세요
// var_dump()를 사용하여 각 비교 결과의 결과를 새 줄에 출력하세요:
// 1. 느슨한 동등성 (==)
// 2. 엄격한 동등성 (===)
// 3. 느슨한 불평등 (!=)
// 4. 엄격한 불평등 (!==)
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators