php7 断言,PHP7.2常用新特性和函数

通过这篇你将了解PHP 7.2版本中添加的一些新特性和函数。

PHP 7.2是一个LTS版本,他提供了一些新功能和几个较小的核心改进。开箱即用的PHP 7.2为我们提供了新的哈希,类型提示,类型扩展和显着的性能。你以可以查看官方文档来获取更详细的内容。

这就是PHP 7.2为我们提供的新功能特性:

新的对象类型(object)

允许重写抽象方法

使用Argon2算法生成密码散列

参数类型推导

允许分组命名空间的尾部逗号

新的对象类型

这种新的对象类型object引进了可用于逆变(contravariant)参数输入和协变(covariant)返回任何对象类型。

class Test

{

public function echo()

{

echo "Hello word";

}

}

function testObject(object $object): object

{

return $object;

}

testObject(new Test)->echo();

允许重写抽象方法

当一个抽象类继承于另外一个抽象类的时候,继承后的抽象类可以重写被继承的抽象类的抽象方法。

abstract class A

{

abstract function test(string $s);

}

abstract class B extends A

{

// overridden - still maintaining contravariance for parameters and covariance for return

abstract function test($s) : int;

}

使用Argon2算法生成密码散列

Argon2是一个导入到PHP 7.2的新哈希,Argon2是一个密钥派生函数,被选为2015年7月密码哈希竞赛的获胜者。

我们通过password_开头的函数使用它。以下是暴露出来的常量:

PASSWORD_ARGON2I

PASSWORD_ARGON2_DEFAULT_MEMORY_COST

PASSWORD_ARGON2_DEFAULT_TIME_COST

PASSWORD_ARGON2_DEFAULT_THREADS

password_hash('password', PASSWORD_ARGON2I);

// or

$options = ['memory_cost' => 1<<11, 'time_cost' => 4, 'threads' => 2];

password_hash('password', PASSWORD_ARGON2I, $options);

参数类型推导

允许我们省略类型提示。因此,您可以覆盖它或其他任何东西。这不会再导致错误,这是一个很好的功能,便于编码,当涉及到覆盖时,您不必限制自己的特定类型提示。

interface A

{

public function Test(array $input);

}

class B implements A

{

public function Test($input){} // type omitted for $input

}

允许分组命名空间的尾部逗号

命名空间可以在PHP 7中使用尾随逗号进行分组引入。

use Foo\Bar\{

Foo,

Bar,

Baz,

};

在7.2之前它是一个错误的语法。

废弃的内容

__autoload()

请使用spl_autoload_register() 来代替__autoload()。

create_function()

请使用更好匿名函数。

parse_str()

不再需要第二个参数.

each()

使用foreach 来代替

assert()

将不再接收字符串参数, 最好提供 bool 的表达式。

上面已经介绍重要的一些PHP7.2更新功能。如果你需要升级迁移你可以查看官方文档

,查看PHP7, PHP7.1的更新特性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值