? : PHP 5.3에서 무엇입니까? [복제]
<?PHP
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
$c();
?>
Twitto는 PHP 5.3에서 사용할 수있는 몇 가지 새로운 기능을 사용합니다.
- DIR의 일정
- ? : 연산자
- 익명 기능
2 번은 PHP 5.3에서 ? : 로 무엇을합니까?
또한 익명 함수는 무엇을 의미합니까? 한동안 존재해온 것이 아니 었나요?
?:
이전에는 다음으로 만 사용할 수 있었던 조건부 연산자의 한 형태입니다.
expr ? val_if_true : val_if_false
5.3에서는 다음과 같은 중간 부분을 생략 할 expr ?: val_if_false
수 있습니다.
expr ? expr : val_if_false
로부터 수동 :
PHP 5.3부터 조건부 연산자의 중간 부분을 생략 할 수 있습니다. 로 평가 되고 그렇지 않으면 표현식이
expr1 ?: expr3
반환expr1
됩니다 .expr1
TRUE
expr3
?:
오퍼레이터는 인 조건 연산자 (종종 원계 연산자에 대해 참조) :
표현식
(expr1) ? (expr2) : (expr3)
평가expr2
의 경우expr1
평가 TRUE , 및expr3
경우expr1
로 평가 FALSE .
다음의 경우 :
expr1 ?: expr2
표현식은 expr1
if 값 expr1
이 true 이고 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
'code' 카테고리의 다른 글
Function with same name but different signature in derived class (0) | 2020.09.21 |
---|---|
The easiest way to replace white spaces with (underscores) _ in bash [closed] (0) | 2020.09.21 |
Apache를 다시 시작할 때 "make_sock : 주소 [::] : 443에 바인딩 할 수 없습니다"(trac 및 mod_wsgi 설치) (0) | 2020.09.20 |
현재 PowerShell 실행 파일을 얻으려면 어떻게해야합니까? (0) | 2020.09.20 |
서블릿의 각 인스턴스와 서블릿의 각 서블릿 스레드의 차이점은 무엇입니까? (0) | 2020.09.20 |