如何在php 5.6上不执行某些php 7代码?

问题描述 投票:0回答:1

最近,我必须使用代码来实现与PHP 5.6的向后兼容性,我使用if语句进行了此操作,检查php版本以选择执行什么代码。这是一个小例子:

if ( version_compare( PHP_VERSION, '7.0', '>=' ) ) {
    return strtotime($b['date']) <=> strtotime($a['date']);
}
else {
    if (strtotime($a['date']) == strtotime($b['date'])) {
        return 0;
    }
    return (strtotime($a['date']) > strtotime($b['date'])) ? -1 : 1;
}

我以为就足够了,但是还不够。 PHP仍在尝试执行PHP 7代码,并向飞船运算符返回错误。任何人都知道为什么php仍在执行代码,并且if语句明确指出不这样做以及如何解决此问题?谢谢

php if-statement php-7 php-5.6 spaceship-operator
1个回答
0
投票

您尝试的方式将无法使用,因为解析器仍将尝试解析整个文件,并且无法识别某些php7语法。为了防止这种情况,您需要执行以下操作:

if (version_compare(PHP_VERSION, '7.0', '>=')) {
    include('php7code.php');
}
else {
    include('php5code.php');
}

请注意,这是不可取的,它会使您的代码难以测试。

© www.soinside.com 2019 - 2024. All rights reserved.