您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    开发者回想:PHP 早已不是十年前的容貌(2)
    时间:2019-05-15 12:04 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    $ids = array_map(fn($post) => $post->id, $posts); 

    Null coalescing operator

    空兼并运算符,它相似于三元运算符,但左边的操作数行为相似于 isset,而不是仅运用其布尔值。这使得此运算符对数组特别有用。它同时可在未设置变量时分配默许值。

    $undefined ?? 'fallback'// 'fallback' 

     

    $unassigned

    $unassigned ?? 'fallback'// 'fallback' 

     

    $assigned = 'foo'

    $assigned ?? 'fallback'// 'foo' 

     

    '' ?? 'fallback'// '' 

    'foo' ?? 'fallback'// 'foo' 

    '0' ?? 'fallback'// '0' 

    0 ?? 'fallback'// 0 

    false ?? 'fallback'// false 

    Traits

    Trait 是一种重用代码的机制,它可以增加单承袭的某些限制。Traits 与类组合的语义定义了降低复杂性的方式,并避免了与多重承袭和 Mixins 相关的典型成绩。

    Trait 相似于类,但仅用于以细粒度和分歧的方式对函数停止分组,它是对传统承袭的补充,可以完成行为的横向组合,类成员运用不需求承袭。

    <?php 

    trait ezcReflectionReturnInfo { 

        function getReturnType() { /*1*/ } 

        function getReturnDescription() { /*2*/ } 

     

    class ezcReflectionMethod extends ReflectionMethod { 

        use ezcReflectionReturnInfo; 

        /* ... */ 

     

    class ezcReflectionFunction extends ReflectionFunction { 

        use ezcReflectionReturnInfo; 

        /* ... */ 

    ?> 

    Typed properties

    属性类型化,类变量可以定义类型,比如:

    class A 

        public string $name

         

        public Foo $foo

    Spread operator

    扩展运算符,这是一种新语法,可以直接在调用中解紧缩参数,比如:

    call_user_func_array([$db'query'], array_merge(array($query), $params)); 

    直接用新语法可扩展出数组 $params:

    $db->query($query, ...$params); 

    JIT compiler:PHP 8 确认支持 JIT

    JIT 是一种编译器策略,它将代码表述为一种中间形状,在运转时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。

    FFI

    (责任编辑:admin)