삼항 연산자(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)를 선행으로 학습해야 되므로 지금은 그냥 넘어가는 것을 추천드리며 나중에 필요할 때 참고하는 것을 추천합니다.
'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 |