본문 바로가기

PHP

PHP 연산자

 

 

산술 연산자(arithmetic operator)

 

산술 연산자는 사칙 연산을 다루는 가장 기본적이면서도 많이 사용하는 연산자

 

$num_01 = 10;
$num_02 = 4;

echo "+ 연산자에 의한 결괏값은".($num_01 + $num_02)."입니다.<br>";
echo "% 연산자에 의한 결괏값은".($num_01 % $num_02)."입니다.";

 

 

 

>>>결과

 

+ 연산자에 의한 결과값은 14입니다.

% 연산자에 의한 결과값은 2입니다.

 

 

대입 연산자(assignment operator)

 

$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_02 = -5)."입니다.<br>"; //-5

 

 

증감 연산자(increment and decrement operator)

 

 

 

증감 연산자는 피연산자를 1씩 증가 혹은 감소시킬 때 사용하는 연산자

 

$num_01 = 7;
$num_02 = 7;

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

 

 

>>>결과

++\7 에 의한 결과값은 3이고, 변수의 값은 8로 변했습니다.
\7++ 에 의한 결과값은 2이고, 변수의 값은 8로 변했습니다.

 

 

증감 연산자의 순서

 

 

 

 

 

 

비교 연산자(comparison operator)

비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여 참과 거짓을 반환

 

$num_01 = 3;
$num_02 = 3.0;
$num_03 = 3;

var_dump($num_01 == $num_02); //true
var_dump($num_01 === $num_02); //false
var_dump($num_01 != $num_03); //false

 

 

 

다양한 타입의 비교

 

 

var_dump(0 < true) //true
var_dump("123abc" == 123); //true
var_dump("123abc" === 123); //false

$arr_01 = array("a" => 10);
$arr_02 = array("a" => 5);
$arr_03 = array("a" => 5, "c" => 7);


var_dump($arr_01 >= $arr_02); //true
var_dump($arr_01 >= $arr_03); //false
var_dump("문자열" < $arr_01); //true

 

문자열과 숫자를 비교 -> 문자열 123abc는 숫자 123으로 변환되어 비교

 

배열끼리 비교할때는 같은 키를 가지는 값을 서로 비교

 

배열의 길이가 다른 경우에는 배열 요소의 수가 적은 쪽이 작다고 판단

 

배열이랑 다른 타입을 비교하면 언제나 배열이 크다고 판단

 

 

 

 

 

논리 연산자(logical operator)

 

논리식을 판단하여 참, 거짓을 반환

 

 

and 논리식이 모두 참이면 참을 반환
or 논리식 중에서 하나라도 참이면 참을 반환
xor 논리식이 서로 다르면 참을 반환
&& 논리식이 모두 참이면 참을 반환
|| 논리식 중에서 하나라도 참이면 참을 반환
! 논리식의 결과가 참이면 거짓, 거짓이면 참을 반환

 

 

 

 

$num_01 = true;
$num_02 = false;

var_dump($num_01 and $num_02); // false
var_dump($num_01 or $num_02); // true
var_dump($num_01 xor $num_02); // true
var_dump((3<5)or("12">20)); // true

 

 

 

비트 연산자(bitwise operator)

 

논리 연산자와 비슷하지만 비트 단위로 논리 연산을 수행

 

& 대응되는 비트가 모두 1이면 1을 반환
| 대응되는 비트 중에서 하나라도 1이면 1을 반환
^ 대응되는 비트가 서로 다르면 1을 반환
~ 비트를 1이면 0, 0이면 1로 반전시킴
<< 지정한 수만큼 비트를 왼쪽으로 이동
>> 지정항 수만큼 비트를 오른쪽으로 이동

 

 

 

$num_01 = 15;
$num_02 = 8;

echo"~연산자에 의한 결괏값은 ".(~$num_01)."입니다.<br>"; // 1의 보수
echo "<< 연산자에 의한 결괏값은 ".($num_02<<1)."입니다.<br>"; //곱하기 2
echo ">> 연산자에 의한 결괏값은 ".($num_02>>1)."입니다."; //나누기2

 

 

>>>결과

 

~ 연산자에 의한 결과값은 -16입니다.
<< 연산자에 의한 결과값은 16입니다.
>> 연산자에 의한 결과값은 4입니다.

 

 

 

 

삼항 연산자(ternary operator)

 

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

 

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

 

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

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

 

>>>결과

 

둘 중에 더 큰수는 15입니다.

 

 

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

 

 

 

문자열 연산자(string operator)

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

 

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

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

 

>>>결과

 

두 문자열을 합친 문자열은 'PHP 수업에 오신것을 환영합니다!'입니다.
PHP 수업에 오신것을 환영합니다!

 

 

 

 

 

 

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

 

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

 

$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);

 

 

두 배열의 첫번째와 두번째 요소의 키값이 서로 같음

 

이때 어느 집합이 앞에 위치하는가에 따라 합집합 연산 결과가 달라짐

 

 

 

 

instance of 연산자

 

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

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

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

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

 

 

interface interface01
{
}
class Class01
{
}
class Class02 extends Class01 implements interface01
{
}

//어떤 클래스에서 생성된 객체 인지를 확인할 때
$var_01 = new Class01; //Class01 클래스 객체를 생성함
var_dump($var_01 instanceof Class01); //true
var_dump($var_01 instanceof Class02); //false

 

 

 

 

 

 

 

 

'PHP' 카테고리의 다른 글

PHP 함수  (0) 2023.06.09
PHP 배열  (0) 2023.06.08
PHP 제어문  (0) 2023.06.08
PHP 기초  (0) 2023.06.08
PHP 시작  (0) 2023.06.07