【问题标题】:Double ternary. A better option?双三元。更好的选择?
【发布时间】:2011-03-14 22:15:31
【问题描述】:

是否有比以下示例更好的方法来验证已发布的变量是否存在并验证 strtotime 是否有效?

$start = (!empty($_POST['start'])) ? (strtotime($_POST['start'])) ? strtotime($_POST['start']) : time() : time();

【问题讨论】:

    标签: php ternary-operator strtotime


    【解决方案1】:
    $start = (!empty($_POST['start']) && strtotime($_POST['start'])) ? strtotime($_POST['start']) : time();
    

    【讨论】:

    • 有时你只需要多一双眼睛。谢谢
    • 呵呵,有时它比你想象的更明显;)
    【解决方案2】:

    我会像$start = intval(strtotime($_POST['start']) > 0 ? intval(strtotime($_POST['start']) : time();一样检查它

    【讨论】:

      【解决方案3】:
      $startIsEmpty = empty($_POST['start']);
      $startIsConvertible = strtotime($_POST['start']);
      $start = !$startIsEmpty && $startIsConvertible ? strtotime($_POST['start']) : time(); 
      

      【讨论】:

      • 致谁否决了这个:你的答案有什么问题?
      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2011-02-20
      • 2020-12-16
      • 1970-01-01
      • 2015-11-11
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多