PHP调用方法并同时检查返回
我是PHP新手,有一个非常简单的问题。我见过人们在if语句的条件语句中调用并返回语句。比如说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
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
};