2012-11-09 1 views
-3

나는쓰는가 If (Function) {return function}이 함수를 두 번 실행합니까? PHP에서

If ($this->that()){ return $this->that()} 

같은이 두 번 $this->that()을 실행합니까 작성하는 경우? 아니면 파서가 알아서 그것을 1 콜로 줄입니까?

가능하면 코드를 깨끗하게 유지하려고하지만 하나의 변수 할당을 위해 실행 시간으로 두 배로하고 싶지는 않습니다.

+2

왜 시도하지 않습니까? 에코 "FOO"; 함수에서 ... –

+1

그렇습니다.이 함수는 두 번 실행됩니다. 이는 'function() {echo 1;}'이 당신에게 말했을 수 있습니다. – Wrikken

답변

9

예, 두 번 실행됩니다.

, 그것은 한 번 실행하게하려면, 당신은 변수가 변수로 값의 저장하고 반환해야합니다 :

if ($value = $this->that()) { 
    return $value; 
} 
+0

그게 내가 생각한 것인데, 내가 두 번 확인했으면 좋겠다고 생각 했어! 감사! 나는 할 수있을 때 몇 분 안에 받아 들일 것이다! – DiscontentDisciple

1

함수를 두 번 호출하면 두 번 계산됩니다.

1

확실히 두 번 실행됩니다.

아마 function_exists을 찾고 계십니까? if 문이 해당 함수가 존재하는지 또는 false를 반환하지 않는지를 확인하려고하는지 확실하지 않습니다.

관련 문제