PHP의 삼항 조건 연산자는 오랫동안 PHP의 주요 요소였으며 간결한 if-then-else 문을 허용했습니다. PHP 5.3에서 이 연산자는 사용법을 더욱 간소화하는 새로운 형식을 얻었습니다.
이전에는 삼항 연산자가 다음 형식을 사용했습니다.
<code class="php">expr ? val_if_true : val_if_false</code>
그러나 PHP 5.3에서는 중간 표현식을 생략할 수 있으며 그 결과는 다음과 같습니다.
<code class="php">expr ?: val_if_false</code>
이것은 다음과 동일합니다:
<code class="php">expr ? expr : val_if_false</code>
고려 다음 예:
<code class="php">require __DIR__.'/c.php'; if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; })) throw new Exception('Error'); $c();</code>
여기서 ?: 연산자는 @$_GET['c'] 조건이 false로 평가되는 경우 $c 변수에 기본값을 할당하는 데 사용됩니다. @$_GET['c']가 설정되지 않았거나 잘못된 함수인 경우 $c에는 "Woah!"를 표시하는 익명 함수가 할당됩니다.
익명 함수의 경우 한동안 PHP에 존재했지만 PHP 5.3에서는 새로운 다양성을 얻었습니다. 클로저라고도 알려진 익명 함수를 사용하면 이름을 지정하지 않고도 함수를 인라인으로 정의할 수 있습니다.
위 예에서 익명 함수는 다음과 같이 정의됩니다.
<code class="php">function() { echo 'Woah!'; }</code>
다음과 같이 정의할 수 있습니다. 이 경우 $c 변수를 사용하여 다른 명명된 함수처럼 호출됩니다.
위 내용은 PHP 5.3의 새로운 기능: 축약된 삼항 연산자 및 익명 함수?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!