php7.4新特性,PHP7新特性

  php7.4新特性,PHP7新特性

  开始介绍PHP7.0的新特性,详情请参考官网介绍。我选一些来详细解释一下。

  http://php.net/manual/en/migration70.new-features.php

  1.运算符(空合并运算符)

  $a=$_GET[a]?1;

  它相当于:

  $a=empty($_GET[a])?1:$ _ GET[ a ];

  我们知道三元运算符可以这样使用:

  $a? 1

  但这是建立在已经定义了$a的前提下的。新的?操作员可以简化判断。简化代码,让代码更直观!

  2.函数返回值类型声明

  官方文件提供的例子(注意边长参数语法.仅在PHP 5.6或更高版本中可用):

  ?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

  函数arraysSum(数组.$ arrays):array { return array _ map(function(array $ array):int { return array _ sum($ array);},$ arrays);} print _ r(arraysum([1,2,3],[4,5,6],[7,8,9]);

  从这个例子可以看出,所有的函数(包括匿名函数)都可以指定返回值的类型。

  这个特性可以帮助我们避免PHP隐式类型转换带来的一些问题。在定义函数之前考虑预期的结果可以避免一些不必要的错误。

  但是,这里还有一个特点需要注意。PHP增加了一个declare指令:strict_types,它使用严格模式。

  当使用返回值类型声明时,如果没有在严格模式下声明,PHP仍然会强制转换不是预期类型的返回值。但是,如果是严格模式,则会启动致命的TypeError错误。

  强制模式:

  # PHP致命错误:未捕获的类型错误:foo()的返回值必须是integer类型,在test.php:6中返回float

  3.标量类型声明

  PHP 7中函数的形参类型声明可以是标量。在PHP 5中,只能是类名、接口、数组或可调用的(PHP 5.4,即可以是函数,包括匿名函数)。现在,你也可以使用string,int,float和bool。

  //strong制模式

  函数sumOfInts(int.$ ints){ return array _ sum($ ints);} var_dump(sumOfInts(2, 3 ,4.1));

  需要注意的是,上面提到的严格模式的问题在这里也是适用的:在强制模式下(默认为强制键入),不符合预期的参数仍然会被强制键入,在严格模式下,会触发TypeError的致命错误。

  4.使用批量声明

  PHP 7中的Use可以在一句话中声明多个类或函数或const:

  ?服务器端编程语言(Professional Hypertext Preprocessor的缩写)

  使用一些\命名空间\{ClassA,ClassB,class C as C };

  使用函数some\namespace\{fn_a,fn_b,fn _ c };使用const some\namespace\{ConstA,ConstB,ConstC };

  但是你仍然必须写出每个类或函数或常量的名字(没有像python这样的import *的方法)。

  需要注意的问题是:如果使用基于composer和PSR-4的框架,这种编写方式能成功加载类文件吗?其实是有可能的。composer注册的自动加载方式是在调用时根据类的命名空间找到位置。这种写法对它没什么影响。

  再简单说几个:

  1.PHP 5.3开始有匿名函数,现在有匿名类;

  2.define现在可以定义一个常量数组;

  3.一个调用方法被添加到闭包;

  4.生成器(或者迭代器更合适)可以有一个最终返回值(return),也可以通过yield from的新语法输入另一个生成器(生成器委托)。

  生成器的两个新功能(return和yield from)可以结合使用。你可以自己测试一下。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括,七种PHP开发环境搭建工具
  • php高并发三种解决方法,php 高并发解决方案
  • php高并发三种解决方法,php 高并发解决方案,PHP解决高并发问题(opcache)
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么,php邮件发送的两种方式
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频,PHP跳转页面的几种实现方法详解
  • PHP购物车,php立即购买和购物车功能
  • PHP购物车,php立即购买和购物车功能,php实现购物车功能(上)
  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • php网站判断用户是否是手机访问的方法有哪些,php如何判断用户是否登录
  • 留言与评论(共有 条评论)
       
    验证码: