일부 언어에서, 당신은 진정한 가치를 발견 할 때까지 왼쪽에서 오른쪽으로 또는 단락 만 값을 평가하는 것입니다가장 왼쪽 값을 반환하는 PHP의 단락 회로가 있습니까?
$a = $b OR $c OR die("no value");
을 할 수 있습니다. 그러나 또한 true
이 아닌 을 계산하여 실제 값을 반환합니다. 하나 또는 $a
$b
비 거짓 값 인 경우, 상기 예에서
$a
는 값
1
것, 또는
die
을 것이다.
그래서 함수 first
이
$a
또는 $b
중 하나의을 반환
$a = first($a, $b, die("no value"));
로 사용 썼다. 그러나 단락은 없습니다. 항상 die
입니다.
실제 값을 반환하는 PHP에는 OR
의 단락 회로가 있습니까?
편집 : 좋은 내가 준 예를 들어 답변,하지만 난 내 예제는 무슨 의미가 정확하지 않습니다 같아요. 내가 분명히하자. 이러한 기능의 각각정말 강렬한 계산을 수행
$a = func1() OR func2() OR func3();
, 그래서 난 단지 대부분에 한 번 각 표현식을 평가합니다. 처음으로 실제 값을 반환하려면 $a
에 실제 값을 저장하고 싶습니다.
우리는 단락을 일으키지 않기 때문에 함수 작성을 배제 할 수 있다고 생각합니다. 그리고 조건부 연산자 응답은 각 표현식을 두 번 평가합니다.
물론 이것은 항상 죽을 것입니다. 함수를 호출 할 때 PHP는 먼저 모든 매개 변수를 평가해야합니다. 평가 과정에서 '죽는다'('가치 없음') '을보고 그 일을합니다. – Tom
변수에 대해 이야기 할 때 각 표현식을 두 번 평가하는 것이 좋습니다. 처음으로 질문을 철자하고 처음에는 사용할 수 없었던 추가 정보를 제시 한 후에 대답을 비판하지 않아야합니다. 함수를 의미하는 경우 처음으로 함수를 사용하십시오. 가장 좋은 대답은 혼돈의 "아니오"입니다. –
의견 # 2가 잘못되었습니다. php는 단락 회로 평가를 가지고 있지만 AFAIK는 가장 왼쪽 값을 반환하지 않습니다. 항상 부울을 반환합니다. – apinstein