2011-08-12 2 views
1

것은 내가 확실 날씨 난을 제대로 terming하고 있어요,하지만 난 다음 코드가 꽤 자기 explaintory 될 것이라고 생각 : 예상대로if 문에서 변수 반환 - 여러 시도가 가능합니까?

function a($p){ 
    if($p===true){ 
     return 'yep'; 
    } 
    else{ 
     return false; 
    } 
} 

if($test=a(true)){ 
    echo $test; // this will echo out 'yep' 
} 

위의 코드가 작동합니다. 내가 성취하려고하는 것은 다음과 같습니다 :

function a($p){ 
    if($p===true){ 
     return 'yep'; 
    } 
    else{ 
     return false; 
    } 
} 

if($test=a(false)||$test=a(true)){ 
    var_dump($test); // this will show $test being bool(true) NOT yep 
} 

중간 기능을 수행하지 않고 이것이 가능합니까?

은 내가 또한 시도 : 아무 소용이

if($test=(a(false)||a(true)){ ... } 

.

답변

4
$test = a(false) || $test = a(true) 

는 항상 부울 값을 반환

$test = (a(false) || $test=a(true)) 

논리 연산자로 평가 될 것이다, 그래서 || 식의 결과는 $test에 할당됩니다.

$test = a(false) or $test = a(true) 

DEMO

: 위의 표현은 $test에 문자열을 할당하는 것을 원하는 경우

, 당신은 lower precedence 후 대입 연산자를 가지고있는 or을 사용하게 (나는이 상황에서이 방법을 선호)

또는 올바르게 괄호을 설정

($test = a(false)) || ($test = a(true)) 
+0

이 좌절 내가 어떻게 할 수있는 이 답변을 다른 10 분 동안 올바른 것으로 투표하십시오. 해결 됐어! 감사!!! –

+0

@ anonymous-one : 환영합니다 :) –

관련 문제