이 줄은 함수에서 반환 된 값을 할당 내 자신의 솔직한 의견에,이 비록 코드의 이상한 작품이다
을 정의 할 필요가 않습니다 object::function('letsgo')
을 변수 $myobjectfunction
으로 변경하십시오. 반환 값이 "truey"값 (부울 TRUE
)으로 평가되면 해당 변수의 내용은 PHP 코드 (eval
)로 평가됩니다. 초기 수익률이 FALSE
이면 더 이상의 조치가 취해지지 않습니다. 결국 false
은 아무 것도하지 않습니다.
PHP가 할당에서 값을 반환하기 때문에 이것은 일반적으로 사용되지는 않지만 작동합니다. 그러나 코드 비트의 경우 할당으로부터의 리턴은 괄호로 묶여 있기 때문에 3 진 연산자의 어느 분기를 가져올 지 결정하는 데 사용됩니다.
$x = 3;
// returns 3 even if we don't use it...
이것은 괄호가 초기 할당 주위에 있기 때문에 비정상적인 관용구입니다.
($myobjectfunction = object::function('letsgo')) ? eval($myobjectfunction) : false;
//^^---------------------------------------------^^^
오른쪽의 조건에 기초하여, 왼쪽의 변수에 ?
의 양쪽의 출력을 할당하는 것 인 터너 리 연산자의 전형적인 사용량은 =
같은
$myobjectfunction = object::function('letsgo') ? $someothervalue : false;
"3 진 if 문"과 같은 것은 없습니다. 또한,이 구문은이 사이트에서 _all뿐만 아니라 모든 좋은 PHP 책에서 다루어집니다. 어떤 연구를하셨습니까? –
또한'object'가 정의되어 있지 않으면이 코드는 해석하지 않고 실행합니다. –
'object :: function ('letsgo')가 반환하는 것이 무엇인지 궁금합니다. 코드가 eval 된 경우 해를 끼치 지 않는다고 확신합니다.'eval()'이 존재하는 것이 좋지만 실제로는 사용하지 말아야합니다. – Arjan