【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%的速度,具体效果如何呢?
我个人希望能够声明属性的类型!!