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