참고: 삼항 연산자는 명령문이므로 평가는 변수가 아니라 명령문의 결과입니다. 이는 참조로 변수를 반환하려는 경우 중요합니다. 참조로 반환하는 함수의 return $var == 42 ? $a : $b; 문은 작동하지 않으며 향후 버전의 PHP에서는 이에 대한 경고가 표시됩니다.
return $var == 42 ? $a : $b;
작동하지 않는다는 것은 무엇을 의미합니까? 값을 반환하는 것이 불가능합니까?
<code class="php">function test($var){ return $var == 42 ? 1 : 2; } echo test(40); //2</code>
테스트 중 반품이 가능합니다...
참고: 삼항 연산자는 명령문이므로 평가는 변수가 아니라 명령문의 결과입니다. 이는 참조로 변수를 반환하려는 경우 중요합니다. 참조로 반환하는 함수의 return $var == 42 ? $a : $b; 문은 작동하지 않으며 향후 버전의 PHP에서는 이에 대한 경고가 표시됩니다.
return $var == 42 ? $a : $b;
작동하지 않는다는 것은 무엇을 의미합니까? 값을 반환하는 것이 불가능합니까?
<code class="php">function test($var){ return $var == 42 ? 1 : 2; } echo test(40); //2</code>
테스트 중 반품이 가능합니다...
"참조로 변수 반환" 시나리오에 영향을 미칩니다
예제 보기, get2가 예상한 결과를 얻을 수 없음
https://3v4l.org/2Q9ai
<code class="php"><?php $data = new stdClass; $data->a = 13; $data->b = 42; $var = &get1($data, true); $var = 14; var_dump($data); $var2 = &get2($data, false); $var2 = 43; var_dump($data); function &get1($data, $isA) { if($isA) { return $data->a; } else { return $data->b; } } function &get2($data, $isA) { return $isA ? $data->a : $data->b; }</code>