PHP

15. PHP 기타 연산자

drizzle0925 2021. 3. 3. 20:32
728x90

삼항 연산자(ternary operator)

삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자이다.

 

삼항 연산자의 문법

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

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

 

1
2
3
4
5
6
7
<?php
$num1 = 15;
$num2 = 20;
$result = ($num1 > $num2) ? $num1 : $num2;
 
echo "둘 중에 더 큰수는 {$result}입니다.";
?>
cs

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


문자열 연산자(string operator)

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

이 연산자는 얼핏 보기에는 연산자가 아닌 것처럼 보이지만 두 문자열을 연결해주는 역할을 한다.

 

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

1
2
3
4
5
6
7
<?php
$num1 = 15;
$num2 = 20;
$result = ($num1 > $num2) ? $num1 : $num2;
 
echo "둘 중에 더 큰수는 {$result}입니다.";
?>
cs


배열 합집합 연산자(array union operator)

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

 

왼쪽 배열의 키값은 유지하면서 거기에 맞춰 오른쪽 배열의 덧붙이는 방식이다.

그러므로, 동일한 키값이 존재할 경우 왼쪽의 배열값이 저장된다.

1
2
3
4
5
6
7
8
9
10
<?php
$soju1 = array("1" => "참이슬""2" => "처음처럼");
$soji2 = array("1" => "진로이즈백""2" => "좋은데이""3" => "한라산");
 
$result1 = $soju1 + $soji2// [참이슬, 처음처럼, 한라산]
var_dump($result1);
echo "<br>";
$result2 = $soji2 + $soju1// [진로이즈백, 좋은데이, 한라산]
var_dump($result2);
?>
cs


instanceof 연산자

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

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

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

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

 

위에 4가지 경우에는 instanceof 연산자를 사용하여 확인할 수 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
interface Interface1{
 
}
 
class Class1{
 
}
 
class Class2 extends Class1 implements Interface1{
    
}
 
/* 어떤 클래스에서 생성된 객체인지를 확인할 때 */
$var_01 = new Class1;
var_dump($var_01 instanceof Class1);     // true
var_dump($var_01 instanceof Class2);     // false
 
 
/* 부모 클래스에서 상속받은 클래스인지를 확인할 때 */
$var_02 = new Class2;
var_dump($var_02 instanceof Class1);     // true
var_dump($var_02 instanceof Class2);     // true
 
 
/* 인터페이스로 구현한 클래스의 객체 인스턴스인지 아닌지를 확인할 때 */
$var_04 = new Class2;
var_dump($var_04 instanceof Class2);     // true
var_dump($var_04 instanceof Interface1); // true
?>
cs

삼항연산자, 문자열 연산자, 배열 합집합 연산자와 달리 instanceof 연산자는 그 쓰임의 범위가 좁고 instanceof 연산자를 이해하기 위해서는 클래스(class), 상속(extends), 인터페이스(interface, implements)를 선행으로 학습해야 되므로 지금은 그냥 넘어가는 것을 추천드리며 나중에 필요할 때 참고하는 것을 추천합니다.

728x90

'PHP' 카테고리의 다른 글

17. PHP SWITCH조건문  (0) 2021.03.04
16. PHP IF조건문  (0) 2021.03.03
14. PHP 논리연산자  (0) 2021.03.02
13. PHP 비교 연산자  (0) 2021.03.02
12. PHP 증감 연산자  (0) 2021.02.28