엘비스 연산자 (?:) PHP에서 풀림
복잡한 PHP 코드베이스 깊숙한 곳에서 신비한 연산자를 만날 수 있습니다: ?: 연산자. "엘비스 연산자"라고 불리는 이 연산자는 "그 목적이 무엇입니까?"라고 궁금해할 수 있습니다.
?: 연산자는 본질적으로 왼쪽 피연산자가 "진실"하다고 간주되면 왼쪽 피연산자로 평가되며, 그렇지 않으면 오른쪽 피연산자입니다. 즉:
foo ?: bar
는 대략 삼항 연산자와 같습니다:
foo ? foo : bar
또는 전통적인 if-else 문에서:
if (foo) { foo = foo; } else { foo = bar; }
그러나 삼항 연산자와 달리 ?: 연산자는 왼쪽 피연산자를 한 번만 평가하므로 효율성이 향상됩니다.
사용 예
한 가지 공통점 사용 사례는 코드 조각에서 볼 수 있듯이 자체 검사를 위한 것입니다:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
여기서 $this->_handle->result()의 결과를 $items에 할당합니다. $items는 null이거나 거짓이며, 그렇지 않으면 $items를 변경하지 않습니다.
추가 예제
다음은 동작을 설명하는 몇 가지 추가 예제입니다.
var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // 'foo' var_dump(true ?: 123); // true var_dump('rock' ?: 'roll'); // 'rock' var_dump('' ?: 'roll'); // 'roll' var_dump('0' ?: 'roll'); // 'roll' var_dump('42' ?: 'roll'); // '42'
나중에 ?: 연산자를 만나게 된다면, 그 목표는 진실성을 기반으로 평가하고 할당하는 간결한 방법을 제공하여 코드를 더 효율적이고 읽기 쉽게 만드는 것임을 기억하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3