본문으로 바로가기

[PHP]Double question mark(??) : isset 삼다항식

category PHP 2021. 4. 15. 23:08
728x90
반응형

보통 아래와 같이 php 에선 값이 있는지 확인하고 없을 때는 원하는 값을 설정한다.

<?php
$foo = isset($bar) ? $bar : 'something';
$test = isset($obj->test) ? $obj_test : '';

사실 php는 $obj->test 와 같이 $obj 안에 test 가 없는 경우에는 Notice: Undefined variable  경고 메세지가 출력된다. 

그걸 방지하기 위해서는 isset 을 사용하면 된다. 근데 그 긴 삼다항식을 ?? 로 해결할 수가 있다.

<?php
$foo = $bar ?? 'something';
$test = $obj->test ?? '';

지금은 어색해보이는 식이지만 적응되면 코드도 줄고 좋겠지.

 

참고사이트

https://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.coalesce

https://stackoverflow.com/questions/53610622/what-does-double-question-mark-operator-mean-in-php

 

What does double question mark (??) operator mean in PHP

I was diving into Symfony framework (version 4) code and found this piece of code: $env = $_SERVER['APP_ENV'] ?? 'dev'; I'm not sure what this actually does but I imagine that it expands to someth...

stackoverflow.com

 

728x90
반응형