• 이번 포스팅에서는 요즘 자주 사용하고 알고 있으면 되게 유용한 정보를 포스팅할 예정이다.

삼항연산자

삼항연산자는 쉽게 생각하면 조건부 연산자 즉 if문 과 같다고 보면된다.

ex)
    $dog = '숑숑이';
    if($dog ==  '숑숑이')
    {
        echo "귀엽다";
    }
    else
    {
        echo "아니다";
    }

    //출력 귀엽다

아주 간단한 if 조건문이지만 풀이를 하면 $dog의 변수에 숑숑이라는 문자열이 있고 조건이 맞으면 ‘귀엽다’ 틀리면 ‘아니다’ 라는 문자를 찍게 했다.

이걸 삼항연산자로 표현하면 더욱 간단하고 짧게 코드를 짤 수 있다.

    
    $dog = '숑숑이';
    echo $dog == '숑숑이' ? '귀엽다' : '아니다';  

    //출력 귀엽다

???코드가 확실히 짧아진걸 느낄 수 있다.

풀이를 하면 $dog 가 숑숑이면 ? ‘귀엽다’ 아니면 : ‘아니다’ 라고 쉽게 이해하면 된다!

null 병합 연산자

병합 연산자는 ?? 연산자 이고 php 7 버전부터 추가된 새로운 연산자 이다.

삼항 연산자를 조금 더 업그레이드 시켰다고 보면된다.

문법은 (expr1) ?? (expr2); 이다.

  1. expr1 값이 null 일 경우 expr2 를 반환
  2. expr1 이 null 이 아닐경우 expr1 를 반환
    //post 로 값을 받는 다는 가정
    $getPost    =   $_POST['test'] ?? '`no`'
    echo $getPost ;

POST로 넘어온 값이 있다면 그 값이 노출될거고 값이 없다면 no 라는 문자열이 노출될거다.

참쉽다!

📌정리

지금은 되게 간단한 예제들로 적었기 때문에 굳이 삼항연산자를 사용하지 않고 그냥 조건문을 사용해도 되지 않을까? 하시는 분들이 분명 있을거다.

이전 방법

  //예전
  if(!empty($getPost['test'])){ // 비어있지 않다면.
    echo $getPost['test'];
  }
  else{
    echo "값이 없다"
  }
  // 예전에는 empty 함수를 사용해서 비어있는지 확인을 했어야 했다.

삼항 연산자

  $test = $getPost['test'] ?: 'no';
  echo $test;

라고 하면 될거같지만 ❗ 오류가 난다.

변수 선언이 안되어있는건데 즉 $getPost 배열에 test 키를 가진 값이 없단 뜻이다.

그래서 삼항 연산자를 사용하려면.

  $test = !empty($getPost['test']) ? $getPost['test'] : 'no';
  echo $test;

조금 복잡하지만 이렇게 사용하면 된다

null 병합 연산자

  $test = $getPost['test'] ?? 'no';
  echo $test;

php7 이후부터는 이렇게 사용하면 된다.

❗❗❗ null 병합 대입 연산자

php 7.4 에서 더 간편하게 사용할 수 있는 연산자 하나가 추가되었다.

  $test ??= 'default';
  echo $test
  // default 출력

$test 가 null 이 아닌경우 해당 값을 변수에 저장하고 null 인경우 default를 저장한다.

  $test = 'hi';
  $test ??= 'default';
  echo $test
  // hi 노출

$test 가 hi 라는 값을 가지고 있기 때문에 hi 노출이다.

❗ 마치며

자주 사용하는 연산자라 간단하게 적어두려고 하다 욕심이 생겨 조금 길어졌던거 같다.

그래도 뿌듯하다~~