2017-09-19 11 views
1

저는 PHP를 처음 사용하여 매우 간단한 질문을했습니다. 사람들이 if 문을 조건부로 호출하고 반환하는 것을 보았습니다. 예를 들어,PHP가 메소드를 호출하고 동시에 return을 확인합니다.

만약 내가 틀리지 않다면, 이것은 반환 부울을 검사하고 연결을 생성합니다. 이 모든 것이 효과가 있습니까? 보다 구체적으로, fclose()을 위해, 나는 이런 식으로 뭔가를 할 경우 알고 싶어 :

if (fclose($stream)) { do something }; 

실제로 검사에게 그것의 부울 반환 값을 닫고 스트림을 닫습니다. 아니면이 일을해야합니까?

if (fclose($stream)) { do something }; 

을 그리고 그것은 작동하지만, 아마도 당신이 생각처럼되지 :

... 
fclose($stream); 
if (fclose($stream)) { do something }; 
... 

답변

2

당신은 할 수 있습니다. 스트림이 먼저 닫힌 다음 해당 함수의 결과 인 부울이 if 문으로 검사됩니다.

다른 방법으로 보겠습니다. if 문은 TRUE 또는 FALSE 만 처리하므로 대괄호 안에 아무 것도 평가하지 않습니다. 이것이 스트림을 닫는 함수 인 경우에는 그렇게하십시오.

TRUE 그게 FALSE하지 않고 FALSE도 제로 (0 또는 '0'), '', NULL, 같은 것들을 할 수 있습니다 단순히 모든 것 등

+0

감사를 참조하십시오. 1. 스트림을 닫습니다. 2. 스트림에 가까운 작업 (예 : 데이터베이스 업데이트)이있는 경우. 위의 권한을 그냥 수행 할 수 있습니까? – kkmoslehpour

+0

네, 맞습니다. –

0

즉시 함수 bool에 비교 값 (반환로 fclose 반환 부울) it'l 작품은, 그래서 기본적으로이 나는 일이 원하는 것입니다, 당신의 답변을 herehere

// this doesn't make much sense, because you already closed a stream 
fclose($stream); //return true 
if (fclose($stream)) { // will return false because resource already closed 
    // do something 
};