> 백엔드 개발 > PHP 튜토리얼 > Elvis 연산자(?:)란 무엇이며 PHP에서 어떻게 작동하나요?

Elvis 연산자(?:)란 무엇이며 PHP에서 어떻게 작동하나요?

Linda Hamilton
풀어 주다: 2024-11-13 16:13:02
원래의
405명이 탐색했습니다.

What is the Elvis Operator (?:) and How Does it Work in PHP?

엘비스 연산자(?:) Unraveled in 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);
로그인 후 복사

여기서, $items가 null이거나 $items인 경우 $this->_handle->result()의 결과를 $items에 할당합니다. $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'
로그인 후 복사

해야 합니다. 나중에 ?: 연산자를 만나게 되면 그 목표는 진실성을 기반으로 평가하고 할당하는 간결한 방법을 제공하는 것임을 기억하세요. 코드를 더욱 효율적이고 읽기 쉽게 만듭니다.

위 내용은 Elvis 연산자(?:)란 무엇이며 PHP에서 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿