前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP7.1新特性

PHP7.1新特性

作者头像
ITer.996
发布2019-08-28 11:09:21
9950
发布2019-08-28 11:09:21
举报
文章被收录于专栏:PHPer技术栈PHPer技术栈
1. 可为空(Nullable)类型

参数以及返回值的类型现在可以通过在类型前加上一个问号使之允许为空。当启用这个特性时,传入的参数或者函数返回的结果要么是给定的类型,要么是null

代码语言:javascript
复制
#php5
function($a = null){
  if($a===null) {
    return null;
  }
  return $a;
}
#php7+
function fun() :?string
{
  return null;
}

function fun1(?$a)
{
  var_dump($a);
}
fun1(null);//null
fun1('1');//1
2. void 类型

返回值声明为 void 类型的方法要么干脆省去 return 语句。对于 void来说,NULL 不是一个合法的返回值。

代码语言:javascript
复制
function fun() :void
{
  echo "hello world";
}
3. 类常量可见性
代码语言:javascript
复制
class Something
{
    const PUBLIC_CONST_A = 1;
    public const PUBLIC_CONST_B = 2;
    protected const PROTECTED_CONST = 3;
    private const PRIVATE_CONST = 4;
}
4. iterable 伪类

这可以被用在参数或者返回值类型中,它代表接受数组或者实现了Traversable接口的对象.

代码语言:javascript
复制
function iterator(iterable $iter)
{
    foreach ($iter as $val) {
        //
    }
}
5. 多异常捕获处理

一个catch语句块现在可以通过管道字符(|)来实现多个异常的捕获。 这对于需要同时处理来自不同类的不同异常时很有用

代码语言:javascript
复制
try {
    // some code
} catch (FirstException | SecondException $e) {
    // handle first and second exceptions
}
6. list支持键名
代码语言:javascript
复制
$data = [
    ["id" => 1, "name" => 'Tom'],
    ["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];
var_dump($id1);//1
7. 字符串支持负向
代码语言:javascript
复制
$a= "hello";
$a[-2];//l
8. 将callback 转闭包

Closure新增了一个静态方法,用于将callable快速地 转为一个Closure 对象。

代码语言:javascript
复制
<?php
class Test
{
    public function exposeFunction()
    {
        return Closure::fromCallable([$this, 'privateFunction']);
    }

    private function privateFunction($param)
    {
        var_dump($param);
    }
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');
9. http2 服务推送

对http2服务器推送的支持现在已经被加入到 CURL 扩展

PHP7.1变更

1. 传递参数过少时将抛出错误

过去我们传递参数过少 会产生warning。php7.1开始会抛出error

2. 移除了ext/mcrypt拓展

内容来自网络,PHPer技术栈收集,如有侵权,请告知。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHPer技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 可为空(Nullable)类型
  • 2. void 类型
  • 3. 类常量可见性
  • 4. iterable 伪类
  • 5. 多异常捕获处理
  • 6. list支持键名
  • 7. 字符串支持负向
  • 8. 将callback 转闭包
  • 9. http2 服务推送
  • PHP7.1变更
    • 1. 传递参数过少时将抛出错误
      • 2. 移除了ext/mcrypt拓展
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档