이 장에서는 PHP에서 다양한 연산자를 사용하는 방법에 대해 설명합니다.
PHP에서는 할당 연산자 =를 사용하여 변수에 값을 할당합니다.
PHP에서는 산술 연산자 +를 사용하여 값을 더합니다.
연산자 | 이름 | 설명하다 | 예 | 결과 |
---|---|---|---|---|
x + y | 추가하다 | x와 y의 합 | 2+2 | 4 |
x-y | 줄이다 | x와 y의 차이 | 5-2 | 3 |
x*y | 가져가다 | x와 y의 곱 | 5*2 | 10 |
x/y | 제거하다 | x와 y의 몫 | 15/5 | 3 |
x%y | 모듈로(나눗셈의 나머지) | x를 y로 나눈 나머지 | 5% 210% 810% 2 | 120 |
- x | 부정 | x를 부정하다 | -2 | -2 |
a.b | 나란히 놓다 | 두 문자열 연결 | "안녕하세요" "하" | 안녕하세요 |
다음 예에서는 다양한 산술 연산자를 사용한 다양한 결과를 보여줍니다.
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // 출력 16 에코 ' <br> ' ; // 줄 바꿈 에코 ( $x - $y ) ; // 출력 4 에코 ' <br> ' ; // 줄 바꿈 에코 ( $x * $y ) ; // 출력 60 에코 ' <br> ' ; // 줄 바꿈 에코 ( $x / $y ) ; // 출력 1.6666666666667 에코 ' <br> ' ; // 줄 바꿈 에코 ( $x % $y ) ; // 출력 4 에코 ' <br> ' ; // 줄 바꿈 에코 - $x ? >
PHP7+ 버전에는 새로운 정수 나누기 연산자 intdiv() 가 있습니다. 사용 예:
<?php var_dump ( intdiv ( 10 , 3 ) ) ;
위의 예는 다음과 같이 출력됩니다.
정수(3)
PHP에서 기본 할당 연산자는 "="입니다. 이는 왼쪽 피연산자가 오른쪽 표현식의 값으로 설정됨을 의미합니다. 즉, "$x = 5"의 값은 5입니다.
연산자 | 동등하다 | 설명하다 |
---|---|---|
x = y | x = y | 왼쪽 피연산자는 오른쪽 표현식의 값으로 설정됩니다. |
x += y | x = x + y | 추가하다 |
x -= y | x = x - y | 줄이다 |
x*=y | x = x * y | 가져가다 |
x /= y | x = x / y | 제거하다 |
x%=y | x = x % y | 모듈로(나눗셈의 나머지) |
.=b | a = a . | 두 문자열 연결 |
다음 예에서는 다양한 할당 연산자를 사용한 다양한 결과를 보여줍니다.
<?php $ x = 10 ; $x ; // 출력 10 $y = 20 ; $y + = 100 ; $y ; // 출력 120 $z = 50 ; $z - = 25 ; $z ; // 출력 25 $i = 5 ; $i * = 6 ; $i ; // 출력 30 $j = 10 ; $j / = 5 ; $j ; // 출력 2 $k = 15 ; $k % = 4 ; $k ; // 출력 3 ?>
다음 예에서는 다양한 문자열 연산자를 사용하여 동일한 결과를 보여줍니다.
<?php $ a = " 안녕하세요 " ; $ b = $ a . 에코 $b ; // 출력 안녕하세요! $x = " 안녕하세요 " ; $x . = " 세상! " ; $x ; // 출력 안녕하세요! ?>
연산자 | 이름 | 설명하다 |
---|---|---|
++x | 사전 증분 | x에 1을 더하고 x를 반환합니다. |
엑스++ | 사후 증분 | x를 반환하고 x에 1을 더합니다. |
-- x | 사전 감소 | x를 1만큼 감소시킨 다음 x를 반환합니다. |
x -- | 이후 감소 | x를 반환하고 x에서 1을 뺍니다. |
다음 예에서는 증가/감소 연산자를 사용한 결과를 보여줍니다.
<?php $x = 10 ; 에코 ++ $x // 출력 11 $ y = 10 ; $y ++; // 출력 10 $z = 5 ; 에코 -- $z // 출력 4 $ i = 5 ; $i --; // 출력 5 ?>
비교 연산자를 사용하면 두 값을 비교할 수 있습니다.
연산자 | 이름 | 설명하다 | 예 |
---|---|---|---|
x == y | 동일한 | x가 y와 같으면 true를 반환합니다. | 5==8은 false를 반환합니다. |
x === y | 절대적으로 같음 | x가 y와 같고 유형이 같은 경우 true를 반환합니다. | 5==="5"는 거짓을 반환합니다. |
x != y | 같지 않음 | x가 y와 같지 않으면 true를 반환합니다. | 5!=8은 true를 반환합니다. |
x <> y | 같지 않음 | x가 y와 같지 않으면 true를 반환합니다. | 5<>8은 true를 반환합니다. |
x !== y | 확실히 같지 않다 | x가 y와 같지 않거나 동일한 유형이 아닌 경우 true를 반환합니다. | 5!=="5"는 true를 반환합니다. |
엑스 > 와이 | 보다 큼 | x가 y보다 크면 true를 반환합니다. | 5>8은 거짓을 반환합니다. |
x < y | 미만 | x가 y보다 작으면 true를 반환합니다. | 5<8은 true를 반환합니다. |
x >= y | 이상 | x가 y보다 크거나 같으면 true를 반환합니다. | 5>=8은 false를 반환합니다. |
x <= y | 보다 작거나 같음 | x가 y보다 작거나 같으면 true를 반환합니다. | 5<=8은 true를 반환합니다. |
다음 예에서는 일부 비교 연산자를 사용한 다양한 결과를 보여줍니다.
<?php $x = 100 ; $ y = " 100 " ; var_dump ( $x == $y ) ; " <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 90 ; 에코" <br> " ; var_dump ( $a < $ b ) ;
연산자 | 이름 | 설명하다 | 예 |
---|---|---|---|
x와 y | 그리고 | x와 y가 모두 참인 경우 참을 반환합니다. | x=6y=3(x < 10 및 y > 1)은 true를 반환합니다. |
x 또는 y | 또는 | x와 y 중 하나 이상이 true인 경우 true를 반환합니다. | x=6y=3(x==6 또는 y==5)는 true를 반환합니다. |
x xor y | XOR | x와 y 중 하나만 참이면 참을 반환합니다. | x=6y=3(x==6 xor y==3)은 false를 반환합니다. |
x && y | 그리고 | x와 y가 모두 참인 경우 참을 반환합니다. | x=6y=3(x < 10 && y > 1)은 true를 반환합니다. |
x || | 또는 | x와 y 중 하나 이상이 true인 경우 true를 반환합니다. | x=6y=3(x==5 || y==5)는 false를 반환합니다. |
!x | 아니요 | x가 true가 아니면 true를 반환합니다. | x=6y=3!(x==y)는 true를 반환합니다. |
연산자 | 이름 | 설명하다 |
---|---|---|
x + y | 모으다 | x와 y의 집합 |
x == y | 동일한 | x와 y에 동일한 키/값 쌍이 있으면 true를 반환합니다. |
x === y | 평등 | x와 y에 동일한 순서와 유형의 동일한 키/값 쌍이 있는 경우 true를 반환합니다. |
x != y | 같지 않음 | x가 y와 같지 않으면 true를 반환합니다. |
x <> y | 같지 않음 | x가 y와 같지 않으면 true를 반환합니다. |
x !== y | 동일하지 않음 | x가 y와 같지 않으면 true를 반환합니다. |
다음 예에서는 일부 배열 연산자를 사용한 다양한 결과를 보여줍니다.
<?php $x = 배열 ( " a " => " 빨간색 " , " b " => " 녹색 " ) ; $ y = 배열 ( " c " => " 파란색 " , " d " => " 노란색 " ) ; = $x + $y ; // $x와 $y 배열 결합 var_dump ( $ z ) ; var_dump ( $ x === $ y ) ; var_dump ( $ x < > $ y ) ; x !== $y ) ? >
또 다른 조건부 연산자는 "?:"(또는 삼항) 연산자입니다.
(expr1) ? (expr2) : (expr3)
expr1이 TRUE로 평가될 때의 값은 expr2이고, expr1이 FALSE로 평가될 때의 값은 expr3입니다.
PHP 5.3부터 삼항 연산자의 중간 부분을 생략할 수 있게 되었습니다. expr1 ?: expr3 표현식은 expr1이 TRUE로 평가되면 expr1을 반환하고 그렇지 않으면 expr3을 반환합니다.
다음 예에서는 $_GET 요청에 사용자 값이 포함되어 있는 것으로 판단됩니다. 그렇다면 $_GET['user']가 반환되고, 그렇지 않으면 아무도 반환되지 않습니다.
<?php $ test = ' Coder Tutorial ' // 일반적인 작성 방법 $username = isset ( $ test ) ? $test : ' 아무도 ' 에코 $username , PHP_EOL ; // PHP 5.3+ 버전 작성 방법 $username = $test ? : ' 아무도 ' 에코 $사용자 이름 , PHP_EOL ? >
코더를 위한 튜토리얼 코더 튜토리얼
참고: PHP_EOL은 개행 문자이며 더 큰 플랫폼과 호환됩니다.
PHP7+ 버전에는 추가 NULL 병합 연산자 ??
가 있습니다. 예는 다음과 같습니다.
<?php // $_GET['user']가 존재하지 않으면 'nobody'를 반환하고, 그렇지 않으면 $_GET['user'] 값을 반환합니다. $username = $_GET [ ' user ' ] ?? ' none ' ; // 유사한 삼항 연산자 $username = isset ( $_GET [ ' 사용자 ' ] ) $ _GET [ ' 사용자 ' ] : ' 아무도 ' ? >
PHP7+는 결합된 비교 연산자를 지원합니다. 예는 다음과 같습니다:
<?php // 정수형 에코 1 <=> 1 ; 에코 1 <=> 2 // -1 에코 2 <=> 1 ; // 부동 소수점 유형 에코 1 .5 <=> 1 .5 ; 에코 1 .5 <=> 2 .5 ; // -1 에코 2 .5 <=> 1 .5 ; // 끈 에코 " a " <=> " a " // 0 에코 " a " <=> " b " // -1 에코 " b " <=> " a " // 1 ?>
다음 표에는 우선순위가 가장 높은 것부터 가장 낮은 것 순으로 연산자가 나열되어 있습니다. 같은 줄에 있는 연산자는 우선순위가 동일하며, 결합되는 방향에 따라 평가 순서가 결정됩니다.
참고 : 왼쪽 = 왼쪽에서 오른쪽으로, 오른쪽 = 오른쪽에서 왼쪽으로.
바인딩 방향 | 연산자 | 추가 정보 |
---|---|---|
없음 | 새로 복제 | 클론과 새로운 |
왼쪽 | [ | 정렬() |
오른쪽 | ++ -- ~ (int) (float) (문자열) (배열) (객체) (bool) @ | 유형 및 증가/감소 |
없음 | 인스턴스 | 유형 |
오른쪽 | ! | 논리 연산자 |
왼쪽 | */% | 산술 연산자 |
왼쪽 | + – . | 산술 및 문자열 연산자 |
왼쪽 | << >> | 비트 연산자 |
없음 | == != === !== <> | 비교 연산자 |
왼쪽 | & | 비트 연산자 및 참조 |
왼쪽 | ^ | 비트 연산자 |
왼쪽 | | | 비트 연산자 |
왼쪽 | && | 논리 연산자 |
왼쪽 | || | 논리 연산자 |
왼쪽 | ? : | 삼항 연산자 |
오른쪽 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 할당 연산자 |
왼쪽 | 그리고 | 논리 연산자 |
왼쪽 | xor | 논리 연산자 |
왼쪽 | 또는 | 논리 연산자 |
왼쪽 | , | 많은 곳에서 사용됨 |
연산자 우선순위에서 or, ||, && 및 and는 모두 동일한 효과를 갖는 논리 연산자이지만 우선순위가 다릅니다.
<?php // 우선순위: && > = > 그리고 // 우선순위: || > = > 또는 $ a = 3 ; $ b = 거짓 ; 또는 $b ; var_dump ( $c ) ; // $c는 부울 값이 아닌 int 값입니다. $d = $a || $b ; var_dump ( $d ) ; // $d는 부울 값입니다. ?>
위 예제의 출력 결과는 다음과 같습니다.
int(3)bool(true)
일반적으로 코드의 가독성을 높일 수 있는 연산자 우선 순위 및 연관성에 의존하기보다는 대괄호 쌍을 통해 작업 순서를 명확하게 나타냅니다.
<?php // 대괄호 우선순위 연산 $a = 1 ; $ b = 3 ; $ d = $ a + $ b * $ c ; $ d 에코 " n " ; $e = ( $a + $b ) * $c // 괄호 사용 ; 에코 $ e ; " n " ? >
위 예제의 출력 결과는 다음과 같습니다.
79