【问题标题】:PHP Upgrade from 5.4 to 7.2PHP 从 5.4 升级到 7.2
【发布时间】:2019-02-25 11:40:29
【问题描述】:

我正在升级用于项目的 PHP 版本。使用 PHP Code Sniffer 查找 PHP 7.2 可能存在的问题。如何解决以下问题?

1)$this->mbstring_overload = ini_get('mbstring.func_overload') & 2;

INI 指令 'mbstring.func_overload' 自 PHP 7.2 起已弃用。

2) $s->service($HTTP_RAW_POST_DATA);

全局变量 '$HTTP_RAW_POST_DATA' 自 PHP 5.6 起已弃用,自 PHP 7.0 起已删除;改用 php://input

3) $this->asp_tags = (ini_get('asp_tags') != '0'); 自 PHP 7.0 起删除了 INI 指令“asp_tags”。 由于这在 PHP 7.0 中已被删除,有什么替代方法?

【问题讨论】:

    标签: php-7.2 php-5.4


    【解决方案1】:
    1) if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)){ $this->mbstring_overload = ini_get('mbstring.func_overload') & 2; }
    2) $s->service(file_get_contents("php://input"));  
    

    【讨论】:

    • $this->mbstring_overload = if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2))应该是这样吗?
    • 嗨@Alpy,我的代码中有这一行。你能告诉我,如何解决这个问题吗? if (isset($GLOBALS['HTTP_RAW_POST_DATA']) && mb_strlen($GLOBALS['HTTP_RAW_POST_DATA']))
    • 只需删除完整的 if 条件,因为它已被弃用,并且不会被其他条件询问
    猜你喜欢
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多