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

问题描述:

我是新来的PHP,并有一个非常简单的问题。我已经看到人们在if语句的条件下调用并返回语句。例如PHP调用方法并同时检查返回

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陈述只关心TRUEFALSE,所以它评估了括号内的任何内容。如果这恰好是关闭流的函数,那就这样做吧。

注意TRUE简直就是一切,是不是FALSEFALSE也可以像零(0'0'),''NULL,事情等

+0

谢谢您的回答,所以基本上,这是我希望发生的。 1.关闭流2.如果流关闭,则执行某些操作(例如,更新数据库)。我可以做上面的权利? – kkmoslehpour

+0

是的,这是正确的。 –

只要一个函数返回可比为bool值( fclose返回Boolean)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 
};