代码之家  ›  专栏  ›  技术社区  ›  Arkadi

php代码逻辑(按版本)

  •  0
  • Arkadi  · 技术社区  · 9 年前

    我想要一个解决方案,比如: try catch 块,它在任何php5。?。?版本,但带有 finally 块中没有。我的代码必须是这样的:

    try {
    
        // some logic
    
    } catch (Exception $ex) {
        // some logic
    } finally {
        // other logic
    }
    

    但是,如果php版本支持finally块,我如何才能使其有效,否则忽略它?例如:

    try {
        // some logic
    } catch (Exception $ex) {
        // some logic
    }
    #if version=5.?.?
    finally {
        // other logic
    }
    #endif
    

    有什么解决办法吗?

    3 回复  |  直到 9 年前
        1
  •  2
  •   abeyaz    9 年前

    您可以通过以下方式获得php版本 phpversion method 。您唯一的选择是编写if语句来检查它;如果它支持写入整个try-catch finally块。如果没有,只写try-catch。您可以使用内联函数来防止重复代码。我不知道为什么有人需要这个,但举例来说;

    function fncTry(){...}
    function fncCatch($exception){...}
    function fncFinally(){...}
    
    if($phpVersion == '5.5'){
       try { fncTry(); }
       catch(Exception $ex) { fncCatch($ex); }
       finally { fncFinally(); }
    }else{
       try { fncTry(); }
       catch(Exception $ex) { fncCatch($ex); }
    
       fncFinally();
    }
    
        2
  •  1
  •   P. Gearman    9 年前

    phpversion()将返回php版本的字符串。(示例:“5.6.14”)

    您可以使用它来设置条件语句。

        3
  •  0
  •   Community SushiHangover    7 年前

    对不起,我很困惑:)

    check this

    你可以在尝试捕获之前检查phpversion

    如果(php版本==5.5或更高)

    你终于成功了

    否则你就不会最终成功