PHP - 연산자

3 minute read

연산자

연산자 우선권

  • 한마디 : 거의 몰라도 되지만, 100% 몰라도 되는건 아니다
    • 와 +의 우선순위 차이를 아는가?
  • 논리 연산자(&&,   등)의 우선순위 차이를 아는가?
  • 이 들을 무시했다가는, 프로그램이 나중에 이상하게 동작할 수 있다.
  • 기본적인 연산자 설명은 안한다. 링크 타고가서 보시오.
<thead>&lt;tr style="border-width: 1px; border-style: solid; border-color: rgb(196, 201, 223) rgb(196, 201, 223) rgb(136, 146, 191);"&gt;&amp;lt;th style="padding: 0.25rem 0.5rem; background-color: rgb(196, 201, 223);"&amp;gt;결합&amp;lt;/th&amp;gt;&amp;lt;th style="padding: 0.25rem 0.5rem; background-color: rgb(196, 201, 223);"&amp;gt;연산자&amp;lt;/th&amp;gt;&amp;lt;th style="padding: 0.25rem 0.5rem; background-color: rgb(196, 201, 223);"&amp;gt;추가 정보&amp;lt;/th&amp;gt;&lt;/tr&gt;</thead><tbody class="tbody">&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;clone new&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[clone](http://php.net/manual/kr/language.oop5.cloning.php)과 [new](http://php.net/manual/kr/language.oop5.basic.php#language.oop5.basic.new)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[array()](http://php.net/manual/kr/function.array.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;++ --&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[증가/감소](http://php.net/manual/kr/language.operators.increment.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;~ - (int) (float) (string) (array) (object) (bool) @&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[자료형](http://php.net/manual/kr/language.types.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;instanceof&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[자료형](http://php.net/manual/kr/language.types.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;오른쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;!&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;* / %&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[계산](http://php.net/manual/kr/language.operators.arithmetic.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;+ - .&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[계산](http://php.net/manual/kr/language.operators.arithmetic.php) 그리고 [문자열](http://php.net/manual/kr/language.operators.string.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;&amp;amp;amp;lt;&amp;amp;amp;lt; &amp;amp;amp;gt;&amp;amp;amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비트](http://php.net/manual/kr/language.operators.bitwise.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;&amp;amp;amp;lt; &amp;amp;amp;lt;= &amp;amp;amp;gt; &amp;amp;amp;gt;= &amp;amp;amp;lt;&amp;amp;amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비교](http://php.net/manual/kr/language.operators.comparison.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;무결합&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;== != === !==&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비교](http://php.net/manual/kr/language.operators.comparison.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;&amp;amp;amp;amp;&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비트](http://php.net/manual/kr/language.operators.bitwise.php) 그리고 [참조](http://php.net/manual/kr/language.references.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;^&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비트](http://php.net/manual/kr/language.operators.bitwise.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;|&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[비트](http://php.net/manual/kr/language.operators.bitwise.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;&amp;amp;amp;amp;&amp;amp;amp;amp;&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;||&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;? :&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[삼항](http://php.net/manual/kr/language.operators.comparison.php#language.operators.comparison.ternary)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;오른쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;= += -= *= /= .= %= &amp;amp;amp;amp;= |= ^= &amp;amp;amp;lt;&amp;amp;amp;lt;= &amp;amp;amp;gt;&amp;amp;amp;gt;=&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[할당](http://php.net/manual/kr/language.operators.assignment.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;and&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;xor&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(255, 255, 255);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;or&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;[논리](http://php.net/manual/kr/language.operators.logical.php)&amp;lt;/td&amp;gt;&lt;/tr&gt;&lt;tr style="border: 1px solid rgb(204, 204, 204); background-color: rgb(230, 230, 230);"&gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;왼쪽&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;,&amp;lt;/td&amp;gt;&amp;lt;td style="padding: 0.25rem 0.5rem;"&amp;gt;다양한 사용&amp;lt;/td&amp;gt;&lt;/tr&gt;</tbody>

간략한 몇몇 연산자 설명

  • = : 같다는 표현이 아니다. 왼쪽에서 오른쪽으로 값을 할당한다는 뜻이다.
  • == : 이 표현이 같다라는 뜻이다.
  • @ : 오류제어 연산자
  • 해당 부분에서 발생한 오류 메세지를 무시한다.
  • @include(‘x.php’); 
    처럼 할 경우 x.php 속에서의 오류 메세지도 무시된다.
  • 될 수 있으면 쓰지 마시오.

  • ` : 실행 연산자
  • $t = ls ;
    라고 적으면 쉘에서  ls를 실행한 내용이 $t에 들어간다.
    shell_exec() 의 동작과 같다.
  • 작은 따옴표가 아니다. ~ 를 시프트 안누르고 키를 누를 때 나오는 문자이다.

  • . : 문자열 연산자
  • PHP는 특이하게 문자열 합치기 연산자로 . 를 사용한다.
  • $b = ‘XYZ’;
    $a = $b.’ ABC’; 
    처럼 사용한다.
    $a 는 ‘XYZ ABC’ 가 된다.

🔗original-link

Updated: