浅谈PHP7新特性

一、标量类型声明

        标量类型声明有两种模式: 强制 (默认) 和 严格模式。 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool)。它们扩充了PHP5中引入的其他类型:类名,接口,数组和回调类型。

function example (int $result){

        return $result;

}

var_dump($this->example(1.2));// 输出值为1;

二、返回值类型声明

        PHP 7 增加了对返回类型声明的支持。 类似于参数类型声明,返回类型声明指明了函数返回值的类型。可用的类型与参数声明中可用的类型相同。

example1:

function test():void{

        // valid

}//定义返回类型为void的函数不能有返回值,即使返回null也不行;

example2:

functionanswer(): int{

return 1;

}//只能返回int型,否则报致命错误

example3:

functionanswer(): ?int{

        return 1;

}//通过?的形式表明函数参数或者返回值的类型要么为指定类型,要么为null。

三、list 方括号简写&允许在 list 中指定 key

把数组的值赋值给不同的变量,可以通过list来实现:

example:

        [$a,$b,$c] = $array;  等同于  list($a, $b, $c) = $array; 

        ['a'=>$a,'b'=>$b,'c'=>$c] = $array;

⚠️:list() 和 [ ] 不能嵌套混用

四、多条件 catch

        try{

                 // Some code...

        }catch(ExceptionType1 | ExceptionType2 $e) {

                // 对于 ExceptionType1 和 ExceptionType2 的处理

         }catch(\Exception$e) {

                // ...

         }

五、null合并运算符 ??

        example $a = $b ?? $c 等同于 $a = $b ? $b: $c;

六、use 批量声明

        use 可以在一句话中声明多个类或函数或 const 了:

          use some/namespace/{ClassA, ClassB, ClassC as C};

          use functionsome/namespace/{fn_a, fn_b, fn_c};

          use constsome/namespace/{ConstA, ConstB, ConstC};

七、其他特性

        1.组合比较符

                用于比较两个表达式。当$a小于、等于或大于$b时它分别返回-1、0或1。 比较的原则是沿用PHP 的常规比较规则进行的。

        2.匿名类

                 现在支持通过new class来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义。

你可能感兴趣的:(浅谈PHP7新特性)