[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 |