PHP调用方法并同时检查返回

PHP调用方法并同时检查返回,php,if-statement,fclose,Php,If Statement,Fclose,我是PHP新手,有一个非常简单的问题。我见过人们在if语句的条件语句中调用并返回语句。比如说 if ($connection = @ssh2_connect($host, 22)) { do something }; 如果我没有错,这将检查返回布尔值以及创建连接。这一切都管用吗?更具体地说,对于fclose(),我想知道我是否这样做: if (fclose($stream)) { do something }; 将实际关闭检查它的布尔返回值并关闭流。还是我必须这么做 ... fclose

我是PHP新手,有一个非常简单的问题。我见过人们在if语句的条件语句中调用并返回语句。比如说

if ($connection = @ssh2_connect($host, 22)) { do something };
如果我没有错,这将检查返回布尔值以及创建连接。这一切都管用吗?更具体地说,对于
fclose()
,我想知道我是否这样做:

if (fclose($stream)) { do something };  
将实际关闭检查它的布尔返回值并关闭流。还是我必须这么做

...
fclose($stream);
if (fclose($stream)) { do something };  
...
你可以做:

if (fclose($stream)) { do something };  
它会起作用,但可能不像你想的那样。首先关闭流,然后通过
if
语句检查该函数的结果(布尔值)

从另一个角度来看:
if
语句只关心
TRUE
FALSE
,因此它计算了括号内的任何内容。如果这恰好是一个关闭流的函数,那么就这样吧


请注意,
TRUE
就是一切不是
FALSE
的东西,
FALSE
也可以是零(
0
'0'
)、
'
NULL
,等等。

只要函数返回一个与bool(返回布尔值)相当的值,它就会工作,请参阅和


谢谢你的回答,所以基本上,这就是我想要发生的。1.关闭流2。如果流已关闭,请执行某些操作(例如更新数据库)。我能把上面的事做好吗?
// 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 
};