在if语句表达式中设置变量

今天我遇到了一些有趣的代码。 我试图找出这是PHP的一项功能,或者我错过了一些东西,但无法在Google上找到任何东西。 可能是因为我不知道它的名字。

if($logo = RepositoriesLogo::getLogoData($id)){
     $logo_href = $logo->link;
}

变量$logo并未在其他地方设置。 看起来这个if语句中的表达式正在检查该类方法是否正在返回任何内容,并同时设置要在语句中使用的变量$logo

这是真的? 如果是这样,那么这叫做世界上什么!!!


你可以在条件中做这样的任务。 逻辑上发生的事情是,该值被分配给$logo ,然后评估$logo是否是真的。 如果是真的,则执行条件中的代码。

在循环访问数据库结果集的情况下,您经常会看到这种赋值/评估,但通常我会建议,为了清晰地读取g代码,应该在这种常见用例之外避免这种情况。


是的,这是一个功能。 就像是:

$a=$b=5;

但在这种情况下,想象一下if为var $ a的布尔结果。

但是,由于== = =是一个非常常见的可能的错误来源,所以IDE用于抱怨这样的解决方案。

链接地址: http://www.djcxy.com/p/58867.html

上一篇: Set variable in if statement expression

下一篇: php variables won't save properly