我今天遇到了一些有趣的代码。我试图找出这是否是 PHP 的一个功能,或者我是否遗漏了某些东西,但在 Google 上找不到任何东西。可能是因为我不知道它的名字。
代码
if($logo = \Repositories\Logo::getLogoData($id)){
$logo_href = $logo->link;
}
变量 $logo
没有在其他任何地方设置。似乎此 if 语句中的表达式正在检查该类方法是否返回任何内容并同时设置要在语句中使用的变量 $logo
。
这是真的吗?如果是这样,这到底叫什么!?!
最佳答案
您可以在条件中进行这样的分配。逻辑上发生的事情是,该值被分配给 $logo
,然后 $logo
被评估是否为真。如果为真,则执行条件中的代码。
在循环遍历数据库结果集的情况下,您经常会看到这种赋值/求值,但一般来说,为了阅读 g 代码时的清晰度,我建议应该避免在这种常见用例之外使用它。
关于php - 在 if 语句表达式中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092730/