這種新的對(duì)象類型, object, 引進(jìn)了可用于逆變(contravariant)參數(shù)輸入和協(xié)變(covariant)返回任何對(duì)象類型。
<?php
function test(object $obj) : object
{
return new SplQueue();
}
test(new StdClass());
擴(kuò)展文件不再需要通過(guò)文件加載
(Unix下以.so
為文件擴(kuò)展名,在Windows下以 .dll
為文件擴(kuò)展名) 進(jìn)行指定??梢栽趐hp.ini配置文件進(jìn)行啟用, 也可以使用
dl() 函數(shù)進(jìn)行啟用。
當(dāng)一個(gè)抽象類繼承于另外一個(gè)抽象類的時(shí)候,繼承后的抽象類可以重寫被繼承的抽象類的抽象方法。
<?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 已經(jīng)被加入到密碼散列(password hashing) API (這些函數(shù)以
password_
開頭), 以下是暴露出來(lái)的常量:
PASSWORD_ARGON2I
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
PASSWORD_ARGON2_DEFAULT_TIME_COST
PASSWORD_ARGON2_DEFAULT_THREADS
當(dāng)你準(zhǔn)備支持多語(yǔ)言字符集,PDO的字符串類型已經(jīng)擴(kuò)展支持國(guó)際化的字符集。以下是擴(kuò)展的常量:
PDO::PARAM_STR_NATL
PDO::PARAM_STR_CHAR
PDO::ATTR_DEFAULT_STR_PARAM
這些常量通過(guò)PDO::PARAM_STR
利用位運(yùn)算OR
進(jìn)行計(jì)算:
<?php
$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);
PDOStatement::debugDumpParams()方法已經(jīng)更新,當(dāng)發(fā)送SQL到數(shù)據(jù)庫(kù)的時(shí)候,在一致性、行查詢(包括替換綁定占位符)將會(huì)顯示調(diào)試信息。這一特性已經(jīng)加入到模擬調(diào)試中(在模擬調(diào)試打開時(shí)可用)。
LDAP 擴(kuò)展已經(jīng)新增了EXOP支持. 擴(kuò)展暴露以下函數(shù)和常量:
LDAP_EXOP_START_TLS
LDAP_EXOP_MODIFY_PASSWD
LDAP_EXOP_REFRESH
LDAP_EXOP_WHO_AM_I
LDAP_EXOP_TURN
sockets擴(kuò)展現(xiàn)在具有查找地址信息的能力,且可以連接到這個(gè)地址,或者進(jìn)行綁定和解析。為此添加了以下一些函數(shù):
重寫方法和接口實(shí)現(xiàn)的參數(shù)類型現(xiàn)在可以省略了。不過(guò)這仍然是符合LSP,因?yàn)楝F(xiàn)在這種參數(shù)類型是逆變的。
<?php
interface A
{
public function Test(array $input);
}
class B implements A
{
public function Test($input){} // type omitted for $input
}
命名空間可以在PHP 7中使用尾隨逗號(hào)進(jìn)行分組引入。
<?php
use Foo\Bar\{
Foo,
Bar,
Baz,
};