• 技术文章 >头条

    PHP 7.4beta1发布:新弃用和错误修复

    藏色散人藏色散人2019-08-29 17:56:36原创2204
    最近,PHP开发团队对PHP 7.4的新弃价进行了投票,该补贴应该在11月底发布。现在第一个测试版已经发布,功能已修复。当前版本不仅提供了新选择的Deprecations,还提供了一些BugFix。

    PHP开发团队发布了PHP 7.4的第一个beta版本。这决定了功能。PHP 7.4beta1除了新的Deprecations之外还带来了一些BugFix。我们正在研究新版本的变化。

    PHP 7.4beta1有新的弃用

    以前,PHP允许方形括号和花括号可互换使用,以访问数组元素和字符串偏移。来自PHP内部的PHP RFC的示例,用于说明:

    $array = [1, 2];
    echo $array[1]; // prints 2
    echo $array{1}; // also prints 2
    
    $string = "foo";
    echo $string[0]; // prints "f"
    echo $string{0}; // also prints "f"

    这部分导致了混乱和问题。例如,花括号不能用于将元素写入数组:

    $array[] = 3;
    echo $array[2]; // prints 3
     
    $array{} = 3; // Parse error: syntax error, unexpected '}'

    使用花括号语法也无法创建数组:

    $array = [1, 2]; // works
     
    $array = {1, 2}; // Parse error: syntax error, unexpected '{'

    事实证明,它很难用于列表映射:

    [$one, $two] = $array; // works
     
    {$one, $two} = $array; // Parse error: syntax error, unexpected ','

    因此,当使用已发布的beta版的数组或字符串偏移量时,花括号语法现在标记为已弃用,因此不建议使用。

    PHP 7.4beta 1带来了PHP开发团队上周投票的进一步弃用。其中列出的14种方法在PHP 7.4中已弃用:

    真正的类型
    魔术引用遗产
    array_key_exists()包含对象
    FILTER_SANITIZE_MAGIC_QUOTES过滤器
    反射export()方法
    mb_strrpos(),编码为第三个参数
    implode()参数顺序组合
    从非静态闭包中取消绑定$ this
    hebrevc()函数
    convert_cyr_string()函数
    money_format()函数
    ezmlm_hash()函数
    restore_include_path()函数
    allow_url_include ini指令

    在PHP 7.4beta1中,不再推荐使用所有提到的方法,最后在8.0版中删除。

    PHP 7.4beta1中的BugFix

    除了上面提到的弃用之外,beta版还准备了一些bug修复。根据发行说明,内置网络服务器中存在Segmatation Fault。这个问题应该通过这个beta来解决。

    PHP通过CGI执行时出现了另一个问题。PHP正在寻找一个shebang(#!)。如果第一行中有哈希值,PHP不检查以下是否是感叹号,因此是哈希值和感叹号的组合(#!)。根据错误报告, PHP跳过相应的行并忽略了PHP代码。

    Test script:
    ---------------
    #<!--?php echo "Hello World\n"; ?-->
    Second line.
     
    Expected result:
    ----------------
    X-Powered-By: PHP/5.3.3-7+squeeze3
    Content-type: text/html
     
    #Hello World
    Second line.
     
    Actual result:
    --------------
    X-Powered-By: PHP/5.3.3-7+squeeze3
    Content-type: text/html
     
    Second line.

    此外,还有一个错误,PHP吞噬了程序的第一个字节,如果它来自进程替换(Bug#78066)。第一个测试版修复了这个错误。有关当前版本的更多信息,请参阅发行说明。

    Beta1之后是beta2

    PHP 7.4计划于11月28日发布。在第一个测试版发布后,PHP 7.4beta2将于2019年8月8日发布。PHP 7.4的时间表可以在PHP wiki中找到。

    本文翻译自:https://entwickler.de/online/php/php-7-4beta1-deprecations-579902190.html

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:PHP 7.4
    上一篇:phpStudy V8.0 版本正式上线! 下一篇:高逼格程序员指南
    大前端线上培训班

    相关文章推荐

    • [视频教程]PHP_LAMP兄弟连之PHP 7.4.构造方法与析构方法• PHP 7.4预计将在2019年12月发布• PHP 7.4 新语法:数组延展操作符• 三分钟了解PHP 7.4新特性

    全部评论我要评论

  • ℡кбвё

    implode() 也要删除??

    2019-08-02

  • . 别闹

    我也想问。。implode也要删除?

    2019-08-15

  • 取消发布评论发送
  • 1/1

    PHP中文网