Programming/PHP

[PHP] 연산자 정리 및 간단한 예제

Rexter 2019. 5. 29. 10:09
반응형

PHP 연산자가 다른 언어의 연산자와 크게 다르지는 않습니다.

그냥 정리 겸 해서 올리니 참고 정도로만 해 주세요.

산술 연산자
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈. 몫.
% 나눗셈. 나머지.
할당 연산자
= 값 할당
+= 양 쪽 변수를 더한 값을 왼쪽 변수에 할당
-= 양 쪽 변수를 뺀 값을 왼쪽 변수에 할당
*= 양 쪽 변수를 곱한 값을 왼쪽 변수에 할당
/= 양 쪽 변수를 나눈 값을 왼쪽 변수에 할당
%= 양 쪽 변수를 나눈 나머지 값을 왼쪽 변수에 할당
접합 연산자(문자열)
. 접합. 변수끼리 + 하는 거랑 같음
.= 접합한 값을 왼쪽 변수에 할당
증가/감소 연산자
++변수 변수 값을 먼저 1 증가 시킨 후 변수를 사용.
변수++ 변수에 저장되어 있는 값을 먼저 사용한 후 1 증가 시킴.
--변수 변수 값을 먼저 1 감소 시킨 후 변수를 사용.
변수-- 변수에 저장되어 있는 값을 먼저 사용한 후 1 감소 시킴.
비교 연산자(if 문 등의 조건절에서)
== 왼쪽 변수와 우측 변수의 값이 같으면
=== 왼쪽 변수와 우측 변수의 값과 데이터형이 같으면
!= 왼쪽 변수와 우측 변수가 같지 않으면
<> 왼쪽 변수와 우측 변수의 크기가 같으면
!== 왼쪽 변수와 우측 변수의 값이 같지 않고 데이터형도 다르면
> 왼쪽 변수가 우측 변수 보다 크다면
< 왼쪽 변수가 우측 변수 보다 작다면
>= 왼쪽 변수가 우측 변수 보다 크거나 같다면
<= 왼쪽 변수가 우측 변수 보다 작거나 같다면
논리 연산자
and 양쪽 항목이 다 참일 때
or 둘 중 한 항목이 참일 때(둘 다 참일 때도 true)
xor 둘 중 한 항목만 참일 때(둘 다 참일 때는 false)
&& and 연산자와 동일. 양 쪽 항목이 다 참일 때 true
|| or 연산자와 동일. 둘 중 한 항목이 참일 때, 둘 다 참일 때 true
! 참이 아닐 때 true 값 리턴
배열 연산자
+ 중복항목 제거 후 합치기
== 키/값이 같을 때 true
=== 키/값/순서/데이터형 같을 때 true
!= 같지 않을 때 true
<> 같지 않을 때 true
!== 키/값/순서/데이터형이 같지 않을 때 true
기타 연산자
@ 해당 코드라인의 에러 메시지를 출력하지 않는 연산자.
& and. 비트자리 비교 후 둘 다 1이면 1 나머지는 0
| or. 비트자리 비교 후 둘 중 하나라도 1이면 1, 둘 다 0이면 0
^ xor. 비트자리의 값이 같으면 0 다르면 1 로 변환
~ not. 0이면 1로 1이면 0으로 변환
<< 왼쪽으로 우측 값 만큼 이동
>> 오른쪽으로 우측 값 만큼 이동

비트 연산자의 경우에는 거의 쓸 일이 없어 보이긴 하네요.

할당 연산자는 정확한 명칭을 몰라 그냥 임의로 했습니다.

가독성을 위해서는 안 쓰는게 좋다고 배웠던 기억이 있는데 요즘은 어떤지 잘 모르겠네요.

논리 연산자나 비교, 산술 연산자가 당연히 많이 쓰일테고, 배열 연산자의 경우에는 솔직히 잘 모르겠네요.

일치 여부 정도는 비교 용으로 쓸 거 같은데,

중복 제거후 합치기 같은 경우 두 배열의 추가되는 배열보다 추가하는 배열의 길이가 길 때 정상적으로 결과를 내는 거 같습니다.

정확한 결과를 위해서는 알고리즘 짜서 하는게 더 나을 거 같네요.

예제

 

<!doctype html>

<html>

<body>

<?php

  $intA = 23;

  $intB = 15;

  $intC = 23;

  $strA = 'temp';

  $strB = 'test';

  $arrayA = array(1,2);

  $arrayB = array(3,6,9);

  $arrayC = array();

  echo '산술 연산자'.'<br/>';

  echo '$intA + $intB : '.$temp = $intA + $intB.'<br/>';

  echo '$intA - $intB : '.$temp = $intA - $intB.'<br/>';

  echo '$intA * $intB : '.$temp = $intA * $intB.'<br/>';

  echo '$intA / $intB : '.$temp = $intA / $intB.'<br/>';

  echo '$intA % $intB : '.$temp = $intA % $intB.'<br/>';

  echo '<br/>할당 연산자'.'<br/>';

  echo 'temp 변수를 하나 만든 후 intA 를 할당.<br/>';

  $temp = $intA;

  echo '$temp += $intB : '.$temp += $intB;

  echo '<br/>';

  $temp = $intA;

  echo '$temp -= $intB : '.$temp -= $intB;

  echo '<br/>';

  $temp = $intA;

  echo '$temp *= $intB : '.$temp *= $intB;

  echo '<br/>';

  $temp = $intA;

  echo '$temp /= $intB : '.$temp /= $intB;

  echo '<br/>';

  $temp = $intA;

  echo '$temp %= $intB : '.$temp %= $intB;

  echo '<br/><br/>';

  echo '접합 연산자.<br/>';

  echo '$strA : '.$strA.'<br/>$strB : '.$strB.'<br/>';

  echo '$strA.=$strB : '.$strA.=$strB.'<br/><br/>';

  echo '증가/감소 연산자<br/>';

  echo '$intA : '.$intA.'<br/>';

  echo '++$intA : '.++$intA.'<br/>';

  echo '$intA : '.$intA.'<br/>';

  echo '$intA++ : '.$intA++.'<br/>';

  echo '$intA : '.$intA.'<br/>';

  echo '<br/>비교 연산자, 논리연산자<br/>';

  $intA=23;

  if($intA === $intC){

    echo '$intA 와 $intC 는 값과 데이터형이 같습니다.<br/>';

  }else{

    echo '$intA 와 $intC 는 값 혹은 데이터형이 다릅니다.<br/>';

  }

  while($intC < 25){

    echo '$intC : '.$intC++.'<br/>';

  }

  if($intA == 23 and $intC < 30){

    echo '$intA : '.$intA.' $intC : '.$intC.'<br/>';

  }

  $arrayC = $arrayA + $arrayB;

  echo '$arrayA + $arrayB : ';

  foreach($arrayC as $array){

    echo $array.' ';

  }

  echo '<br/><br/>비트연산자<br/>';

  echo 'intA & int B : ';

  echo $intA & $intB;

  echo '<br/>intA | int B : ';

  echo $intA|$intB;

  echo '<br/>intA ^ int B : ';

  echo $intA ^ $intB;

  echo '<br/>~intA : ';

  echo ~$intA;

  echo '<br/>intA << 2 : ';

  echo $intA << 2;

  echo '<br/>intA >> 2 : ';

  echo $intA >> 2;

?>

</body>

</html>

 

결과 화면

 

 

 

반응형