【PHP】恭祝!PHP7.2.0版本正式发布!

PHP7.2.0可以进行重述为:

PHP七点二点零

PHP7.2.0在11月30日发布了!

今天我想关注一些新增功能,这些功能是在7.2.0版本中添加的!

【链接】http://php.net/manual/ja/migration72.php 【标题】

增加 object 类型

新增了一个对象类型。

然后,现在我们可以指定声明类型/返回值类型。

示例代码


<?php

function test(object $obj) : object
{
    return new SplQueue();
}

test(new StdClass());

可以覆盖抽象方法。

现在可以重写抽象方法了。

<?php

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″作为密码哈希算法。

Argon2是一种密码哈希函数,是为了防止密码相关攻击而设计的。这个函数是Winner of the Password Hashing Competition(PHC)竞赛选择出来的,其目标是取代现有的一些密码哈希函数,如PBKDF2和bcrypt。

密码_ 可在系统函数中使用。

    • PASSWORD_ARGON2I

 

    • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

 

    • PASSWORD_ARGON2_DEFAULT_TIME_COST

 

    PASSWORD_ARGON2_DEFAULT_THREADS

类型声明的缩写

可以省略继承的方法的类型声明。

<?php

interface A
{
    public function Test(array $input);
}

class B implements A
{
    public function Test($input){} // 型宣言の省力が可能
}

在命名空间的使用声明中,允许使用逗号。

在PHP7.0中新增的可以批量执行use声明的功能,

「尾随的逗号」,也就是说「即使在最后加上多余的逗号也能正常运行」。

<?php

use Foo\Bar\{
    Foo,
    Bar,
    Baz,
};

当向number_format()函数传递负数时会导致行为的变化。

在使用number_format()函数时,当给定负数时,其行为发生了变化。

现在返回的是”-0.01″。

从PHP7.2开始,现在会返回”0″。

<?php

echo number_format(-0.01); // 0 が返されるようになった

在将数组转换为对象后,可以通过数值键访问。

在将数组转换为对象后,

现在可以访问数字键了。

以前,只能通过字符串键进行访问。

<?php

// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
    $obj,
    $obj->{'0'}, // アクセス出来るようになった
    $obj->{0} // アクセス出来るようになった
);

如果无法使用count()函数,就发出警告

当将无法使用count()函数来计算的数据类型传递给它时,现在会产生警告。

count(1);  // WARNING
count("apple");  // WARNING
count([1, 2]);  // 2

这次调查就到此为止!

说实话,我对于PHP7.0和PHP7.1时的惊喜没那么多了。

据说PHP7.1相比于之前版本提升了10%的速度,具体效果如何呢?

我个人希望能够声明属性的类型!!

bannerAds