code

? : PHP 5.3에서 무엇입니까?

codestyles 2020. 9. 21. 07:42
반응형

? : PHP 5.3에서 무엇입니까? [복제]


중복 가능성 : PHP 연산자 "?"는 무엇입니까? 그리고“:”라고 부르고 그들은 무엇을합니까?

에서 http://twitto.org/

<?PHP
    require __DIR__.'/c.php';
    if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
        throw new Exception('Error');
    $c();
?>

Twitto는 PHP 5.3에서 사용할 수있는 몇 가지 새로운 기능을 사용합니다.

  1. DIR의 일정
  2. ? : 연산자
  3. 익명 기능

  1. 2 번은 PHP 5.3에서 ? : 로 무엇을합니까?

  2. 또한 익명 함수는 무엇을 의미합니까? 한동안 존재해온 것이 아니 었나요?


?: 이전에는 다음으로 만 사용할 수 있었던 조건부 연산자의 한 형태입니다.

expr ? val_if_true : val_if_false

5.3에서는 다음과 같은 중간 부분을 생략 할 expr ?: val_if_false수 있습니다.

expr ? expr : val_if_false

로부터 수동 :

PHP 5.3부터 조건부 연산자의 중간 부분을 생략 할 수 있습니다. 평가 되고 그렇지 않으면 표현식이 expr1 ?: expr3반환 expr1됩니다 .expr1TRUEexpr3


?:오퍼레이터는 인 조건 연산자 (종종 원계 연산자에 대해 참조) :

표현식 (expr1) ? (expr2) : (expr3)평가 expr2의 경우 expr1평가 TRUE , 및 expr3경우 expr1로 평가 FALSE .

다음의 경우 :

expr1 ?: expr2

표현식은 expr1if expr1true 이고 expr2그렇지 않으면 다음 같이 평가됩니다 .

PHP 5.3부터 삼항 연산자의 중간 부분을 생략 할 수 있습니다. 표현 expr1 ?: expr3을 반환 expr1하는 경우 expr1로 평가 TRUE 하고, expr3그렇지 않으면.


이봐:

PHP 5.3부터 삼항 연산자의 중간 부분을 생략 할 수 있습니다. 표현식 expr1? : expr3은 expr1이 TRUE로 평가되면 expr1을 반환하고 그렇지 않으면 expr3을 반환합니다.

익명 함수 : 아니요, 5.3.0 이전 에는 존재하지 않았습니다 (예제 아래의 첫 번째 참고 참조). 최소한 다음과 같은 방식으로 :

function ($arg) { /* func body */ }

유일한 방법은 create_function()(함수 정의에 문자열을 사용하기 때문에) 더 느리고 매우 번거롭고 오류가 발생하기 쉬운이었습니다.

참고 URL : https://stackoverflow.com/questions/2153180/what-is-in-php-5-3

반응형