PHP에서는 &&(AND) 연산자를 if 문과 함께 사용하여 두 조건이 모두 참인지 확인할 수 있습니다. 두 조건이 모두 참으로 평가될 때만 코드 블록이 실행되고, 하나라도 거짓이면 해당 블록은 완전히 건너뛰어집니다.
참고로 PHP에는 &&와 유사한 역할을 하는 "and" 키워드도 존재하지만, 연산자 우선순위가 낮아 복잡한 표현식에서 의도와 다르게 동작할 수 있습니다. 따라서 가독성과 일관성을 위해 && 사용을 권장합니다.
기본 문법
if (condition1 && condition2) {
echo "Both conditions are true!";
}
condition1과 condition2가 모두 참일 때만 코드 블록이 실행됩니다. 어느 하나라도 거짓이면 블록 전체가 건너뛰어집니다.
예제 1: 기본 AND 논리
&& 연산자가 참/거짓 조합에 따라 어떻게 동작하는지 살펴보겠습니다.
<?php
if (true && true) {
echo "true<br>";
} else {
echo "false<br>";
}
if (true && false) {
echo "true<br>";
} else {
echo "false<br>";
}
if (false && true) {
echo "true<br>";
} else {
echo "false<br>";
}
if (false && false) {
echo "true<br>";
} else {
echo "false<br>";
}
?>
true false false false
두 조건이 모두 참일 때만 "true"가 출력되고, 그 외의 모든 경우에는 "false"가 출력됩니다.
예제 2: 사용자 로그인 검증
실무에서 자주 쓰이는 아이디와 비밀번호 검증 예제입니다.
<?php
$username = "admin";
$password = "12345";
if ($username == "admin" && $password == "12345") {
echo "Login successful!";
} else {
echo "Invalid username or password.";
}
?>
Login successful!
$username == "admin"과 $password == "12345" 두 조건이 모두 참이므로 로그인에 성공합니다.
예제 3: 괄호를 활용한 복합 조건
AND와 OR 연산자를 함께 사용할 때는 괄호로 조건을 묶어 우선순위 문제를 방지하는 것이 좋습니다.
<?php
$age = 20;
$country = "USA";
if ($age >= 18 && ($country == "USA" || $country == "Canada")) {
echo "You are eligible to vote.";
} else {
echo "You are not eligible to vote.";
}
?>
You are eligible to vote.
첫 번째 조건($age >= 18)이 참이고, 두 번째 조건($country == "USA" || $country == "Canada")도 참이므로 전체 조건이 충족됩니다.
핵심 정리
| 연산자 | 우선순위 | 권장 사항 |
|---|---|---|
&& | 높음 | 가독성을 위해 권장 |
and | 낮음 | 복잡한 표현식에서는 사용 지양 |
결론
PHP의 if 문에서 여러 조건을 동시에 확인하려면 && 연산자를 사용하세요. 특히 AND와 OR 연산자를 함께 조합할 때는 반드시 괄호를 사용해 평가 순서를 명확히 해야 예상치 못한 동작을 방지할 수 있습니다.