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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog