• php 5.3新特性


    1、命名空间 解决了类,函数和常量名冲突的问题

    2、静态绑定 继承时父类可以直接调用子类重写父类的方法

    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            static::who(); // 后期静态绑定从这里开始
        }
    }
    
    class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }
    
    B::test();

    3、匿名函数,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数

    //匿名函数做回调函数
    uasort($arr ,function($a, $b){
        
    })

    闭包函数也可以作为变量的值来使用

    $fn = function ($a) {
        echo $a;
    };
    
    $fn(1);

    PHP会自动把表达式转换成内置类Closure的 对象实例

    $fn = function ($a) {
        echo $a;
    };
    
    ee($fn);
    /**
     * Closure Object
    (
        [parameter] => Array
            (
                [$a] => 
            )
    
    )
    */

    匿名函数目前是通过Closure类来实现的。目前还不稳定,不适用于正式开发

     3、?: 操作符

    $a = 0; 
    $b = 2;
    
    ee($a ?: $b); # 2 类似js中的 ||

    4、新增常量 __DIR_

    5、新的垃圾回收机制,解决了循环引用的问题

    gc_enable(); // 激活循环引用收集器,默认开启
    var_dump(gc_collect_cycles()); // 强制回收已无效的变量
    gc_disable(); // 禁用GC
  • 相关阅读:
    Java static 关键字 静态初始化块
    一致性哈希
    Java函数传递方式值传递
    Scala 小练习
    Scala 推荐递归编程
    白话 Scala 控制抽象
    函数柯里化(curry)
    Scala 闭包 closure
    Scala 参数(类型)推断
    xcode配置文件中,Architectures表示的意义
  • 原文地址:https://www.cnblogs.com/siqi/p/3652255.html
Copyright © 2020-2023  润新知