4. PHP

[Project H4C] 3. 연산자

도피디 2020. 7. 11. 20:11
반응형

[Project H4C] 3. 연산자

 

  • 산술 연산자

사칙연산을 다루는 기본적인 연산자

 

  • 연산자의 우선순위와 결합 방향

http://tcpschool.com/php/php_operator_arithmetic

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

  • 대입 연산자

변수에 값을 대입할 때 사용하는 이항 연산자.

피연산자들의 결합 방향은 오른쪽에서 왼쪽이다. (=)

 

 

  • 복합 대입 연산자

두 개의 피연산자를 가지는 이항 연산자

피연산자들의 결합 방향은 오른쪽에서 왼쪽이다.



e.g.)

 

$num_01 = 7;
$num_02 = 7;
$num_03 = 7;

 

echo "- 연산자에 의한 결괏값은 ".($num_01 = $num_01 - 5)."입니다.<br>"; // 2
echo "-= 연산자에 의한 결괏값은 ".($num_02 -= 5)."입니다.<br>";         // 2
echo "=- 연산자에 의한 결괏값은 ".($num_03 =- 5)."입니다.";             // -5

 

위 예제에서 $num_03 =- 5 연산은 단순히 -5를 변수 $num_03에 대입하는 연산이다.(순서 조심!)

 

  • 증감 연산자

피연산자를 1씩 증가 혹은 감소시킬 때 사용한다.

피연산자가 단 하나뿐인 단항 연산자이다.

 

e.g.)

$num_01 = 7;
$num_02 = 7;

 

echo "++\\$num_01 에 의한 결괏값은 ".(++$num_01 - 5)."이고, 변수의 값은 {$num_01}로 변했습니다.<br>";
echo "\\$num_02++ 에 의한 결괏값은 ".($num_02++ - 5)."이고, 변수의 값은 {$num_02}로 변했습니다.";

 

위 예제에서

첫 번째 연산은 변수 $num_01의 값을 먼저 1 증가시킨 후에 전체 연산을 수행.

두 번째 연산은 먼저 모든 연산을 끝마친 후에 변수 $num_02의 값을 1 증가.

따라서 두 번째 연산에서 변수 $num_02의 증가는 전체 연산에 어떠한 영향도 미치지 않는다. 

 

 

  • 증감 연산자의 연산 순서

증감 연산자는 피연산자의 어느 쪽에 위치하는가에 따라 연산의 순서가 달라진다.

e.g.)

$x = 10;

$y = $x-- + 5 + --$x;

 

echo "변수 \\$x 의 값은 ".$x."이고, 변수 \\$y 의 값은 ".$y."으로 변경되었습니다.";

 

- 위 예제의 연산 순서

 

  • 비교 연산자

피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환한다.

두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다. 

 

!=와 <> 연산자는 정확히 같은 동작을 하며, 연산자의 우선순위에서만 차이가 발생한다.

 

 

  • 다양한 타입의 비교

 

  • 논리 연산자

논리식을 판단하여, 참(true)과 거짓(false)을 반환

and, or, xor 연산자는 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

! 연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽이다.

and와 && 연산자, or와 || 연산자는 정확히 같은 동작을 하며, 연산자의 우선순위에서만 차이가 발생합니다.

 

- 논리연산자의 동작 결과를 보여주는 진리표

 

  • 비트 연산자

이해를 돕기 위해 이미지가 첨부된 페이지로 대체합니다.

http://tcpschool.com/php/php_operator_bitwise

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

 

  • 삼항 연산자

피연산자를 세 개나 가지는 조건 연산자

조건식 ? 반환값1 : 반환값2

물음표(?) 앞의 표현식에 따라 결괏값이 참이면 반환값 1을 반환하고, 결괏값이 거짓이면 반환값 2를 반환.

 

e.g.)

$num_01 = 15;
$num_02 = 8;
$result = ($num_01 > $num_02) ? $num_01 : $num_02;

 

echo "둘 중에 더 큰수는 {$result}입니다.";

 

삼항 연산자는 짧은 if / else 문 대신 사용할 수 있으며, 코드를 간결하게 만들어 준다. 

 

 

  • 문자열 연산자

문자열 연산자(.)를 사용하여 문자열을 연결할 수 있다.

양쪽에 위치한 두 문자열을 연결해 주는 역할을 한다.

echo() 함수에서는 쉼표 연산자(,)를 이용하여 문자열을 연결할 수 있다.

 

e.g.)

$str_01 = "PHP 수업";
$str_02 = "에 오신것을 환영합니다!";


echo "두 문자열을 합친 문자열은 '".($str_01.$str_02)."'입니다.<br>";

echo $str_01, $str_02;

 

PHP에서는 문자열 내에 변수의 이름을 포함시켜 해당 변수의 값을 동적으로 문자열에 삽입할 수도 있다.

 

 

  • 배열 합집합 연산자

배열 합집합 연산자(+)는 피연산자로 오는 두 배열의 합집합을 반환한다.

왼쪽 피연산자로 오는 배열의 키값은 유지하면서, 거기에 맞춰 오른쪽 피연산자로 오는 배열을 덧붙이는 방식을 취한다

따라서 같은 키에 대한 값에는 왼쪽 피연산자로 오는 배열의 값이 저장된다.

 

e.g.)

$arr_01 = array("1st" => "PHP", "2nd" => "MySQL");
$arr_02 = array("1st" => "HTML", "2nd" => "CSS", "3rd" => "JavaScript");

$result_01 = $arr_01 + $arr_02; // [PHP, MySQL, JavaScript]
var_dump($result_01);
$result_02 = $arr_02 + $arr_01; // [HTML, CSS, JavaScript]
var_dump($result_02);

 

위 예제에서 두 배열의 첫 번째와 두 번째 요소의 키값이 서로 같다. 

이때 어느 집합이 앞에 위치하는가에 따라 합집합 연산의 결과가 달라지는 것을 확인할 수 있다. 

 

 

  • instanceof 연산자

instanceof 를 사용할 때

1. 해당 변수가 어떤 클래스(class)에서 생성된 객체(object)인지를 확인할 때

2. 해당 변수가 부모 클래스(parent class)에서 상속받은 클래스인지를 확인할 때

3. 해당 변수가 클래스의 인스턴스(instance)인지 아닌지를 확인할 때

4. 해당 변수가 인터페이스(interface)로 구현한 클래스의 객체 인스턴스(object instance)인지 아닌지를 확인할 때

 

 

반응형

'4. PHP' 카테고리의 다른 글

[Project H4C] 2. PHP 기초 (3)  (0) 2020.07.11
[Project H4C] 2. PHP 기초 (2)  (0) 2020.07.11
[Project H4C] 2. PHP 기초 (1)  (0) 2020.07.11
[Project H4C] 1. PHP 시작  (0) 2020.07.11