PHP7.0版本备注(5)

当用 OpenSSL 1.0.2 及更新构建时,增加了 "alpn_protocols" SSL 上下文选项来允许加密的客户端/服务器流使用 ALPN TLS 扩展去协商替代的协议。协商后的协议信息可以通过 stream_get_meta_data() 输出访问。
Reflection

增加了一个 ReflectionGenerator 类(yield from Traces,当前文件/行等等)。
增加了一个 ReflectionType 类来更好的支持新的返回类型和标量类型声明功能。新的 ReflectionParameter::getType() 和 ReflectionFunctionAbstract::getReturnType() 方法都返回一个 ReflectionType 实例。
Stream

添加了新的仅用于 Windows 的流上下文选项以允许阻塞管道读取。要启用该功能,当创建流上下文时,传递 array("pipe" => array("blocking" => true)) 。要注意的是,该选项会导致管道缓冲区的死锁,然而它在几个命令行场景中有用。
 

3. SAPI 模块的变化
FPM
修复错误 #65933 (不能设置超过1024字节的配置行)。
Listen = port 现在监听在所有地址上(IPv6 和 IPv4 映射的)。
 

4. 废弃的功能
Core

废弃了 PHP 4 风格的构建函数(即构建函数名必须与类名相同)。
废弃了对非静态方法的静态调用。
OpenSSL

废弃了 "capture_session_meta" SSL 上下文选项。 在流资源上活动的加密相关的元数据可以通过 stream_get_meta_data() 的返回值访问。
 
5. 函数的变化
parse_ini_file():
parse_ini_string():

添加了扫描模式 INISCANNERTYPED 来得到 yield 类型的 .ini 值。
unserialize():

给 unserialize 函数添加了第二个参数 (RFC: https://wiki.php.net/rfc/secure_unserialize) 来指定可接受的类: unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);
proc_open():

可以被 proc_open() 使用的最大管道数以前被硬编码地限制为 16。现在去除了这个限制,只受限于 PHP 的可用内存大小。
新添加的仅用于 Windows 的配置选项 "blocking_pipes" 可以用于强制阻塞对子进程管道的读取。这可以用于几种命令行应用场景,但是它会导致死锁。此外,这与新的流的管道上下文选项相关。
array_column():

该函数现在支持把对象数组当做二维数组。只有公开属性会被处理,对象里面使用 __get() 的动态属性必须也实现 __isset() 才行。
stream_context_create()

现在可以接受一个仅 Windows 可用的配置 array("pipe" => array("blocking" => <boolean>)) 来强制阻塞管道读取。该选项应该小心使用,该平台有可能导致管道缓冲区的死锁。
 
6. 新函数
GMP

添加了 gmp_random_seed()。
PCRE:

添加了 preg_replace_callback_array 函数。 (RFC: https://wiki.php.net/rfc/preg_replace_callback_array)
Standard . 添加了整数除法 intdiv() 函数。 . 添加了重置错误状态的 error_clear_last() 函数。

Zlib: . 添加了 deflate_init()、 deflate_add()、 inflate_init()、 inflate_add() 函数来运行递增和流的压缩/解压。

7. 新的类和接口
(暂无)

8. 移除的扩展和 SAPI
sapi/aolserver
sapi/apache
sapi/apache_hooks
sapi/apache2filter
sapi/caudium
sapi/continuity
sapi/isapi
sapi/milter
sapi/nsapi
sapi/phttpd
sapi/pi3web
sapi/roxen
sapi/thttpd
sapi/tux
sapi/webjames
ext/mssql
ext/mysql
ext/sybase_ct
ext/ereg
更多细节参见:

https://wiki.php.net/rfc/removal_of_dead_sapis_and_exts
https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7
注意:NSAPI 没有在 RFC 中投票,不过它会在以后移除。这就是说,它相关的 SDK 今后不可用。

9. 扩展的其它变化
Mhash
Mhash 今后不是一个扩展了,使用 function_exists("mhash") 来检查器是否可用。

10. 新的全局常量
Core . 添加 PHP_INT_MIN

Zlib

添加的这些常量用于控制新的增量deflate_add() 和 inflate_add() 函数的刷新行为:
ZLIB_NO_FLUSH
ZLIB_PARTIAL_FLUSH
ZLIB_SYNC_FLUSH
ZLIB_FULL_FLUSH
ZLIB_BLOCK
ZLIB_FINISH
GD

移除了 T1Lib 支持,这样由于对 T1Lib 的可选依赖,如下将来不可用:
函数:

imagepsbbox()
imagepsencodefont()
imagepsextendedfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
资源:

'gd PS font'
'gd PS encoding'

11. INI 文件处理的变化
Core
移除了 asp_tags ini 指令。如果启用它会导致致命错误。
移除了 always_populate_raw_post_data ini 指令。

12. Windows 支持
Core

在 64 位系统上支持原生的 64 位整数。
在 64 位系统上支持大文件。
支持 getrusage()。
ftp

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f4b4929b666297575ae08dbee03f0191.html