doupaoshu8334 2014-05-22 00:22
浏览 35
已采纳

设置var的缩写,以2个变量中较大者为准

I have 2 different possible values I use in an equation. I want to select whichever one exists and is greater using the least amount of code. It's possible neither variable exists, in which case year = 0, but one or both might exist. I.e:

if(isset($this->average['year'] || isset($this->Listings['year']) {
$year = whichever is greater of the above.
} else {
$year = 0;
}

It seems like there must be a shorter/ less messy way to do this than:

if (isset($this->average['year']) && ($this->average['year'] > $this->Listings['year']) {
   $year = $this->average['year'];
} elseif( isset($this->Listings['year'])) {
   $year = $this->Listings['year'];
} else {
  $year = 0;
}

Thanks

  • 写回答

1条回答 默认 最新

  • doushifen4060 2014-05-22 00:29
    关注

    Using max and the ternary operator to do isset checks on both variables you can shorten it to this:

    $year = max(array(
        isset($this->average['year']) ? $this->average['year'] : 0,
        isset($this->Listings['year']) ? $this->Listings['year'] : 0
    ));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题