PHP7弃用了哪些功能
在 PHP 7 中,已经不再支持某些功能,并且这些功能将会被删除。下文介绍了这些在 PHP 7 不再支持的功能:
PHP 7 弃用了 PHP 4 风格的构造函数
PHP 4 风格的构造函数是与它们定义的类名相同的方法,现在已被弃用,将来会被删除。如果 PHP 4 构造函数是类中定义的唯一构造函数,PHP7 将会发出 E_DEPRECATED。实现 __construct()方法的类不受影响。
示例
<?php
class A {
function A() {
print('Style Constructor');
}
}
?>
它产生以下浏览器输出:
Deprecated: Methods with the same name as their class will not be constructors
in a future version of PHP; A has a deprecated constructor in...
PHP7 弃用了静态调用非静态方法
对非静态方法的静态调用已弃用,将来可能会被删除。
示例
<?php
class A {
function b() {
print('Non-static call');
}
}
A::b();
?>
它产生以下浏览器输出:
Deprecated: Non-static method A::b() should not be called statically in...
Non-static call
password_hash()salt 选项被弃用
password_hash()函数的 salt 选项已被弃用,因此开发人员不会生成自己的(通常不安全的)盐。该功能本身产生一种加密安全的盐,当开发商没有提供盐时,因此不再需要定制的盐生成。
capture_session_meta SSL 上下文选项被弃用
该 capture_session_meta SSL 上下文选项已被弃用。现在,通过 stream_get_meta_data()函数使用 SSL 元数据。
在 PHP7 中移除的函数列表
被移除的函数列表如下:
- 已废弃的 mcrypt_generic_end() 函数已被移除,您可以使用 mcrypt_generic_deinit() 代替。
- 已废弃的 mcrypt_ecb(), mcrypt_cbc()、 mcrypt_cfb() 和 mcrypt_ofb() 函数已被移除。
- set_magic_quotes_runtime() (别名:magic_quotes_runtime() )已被移除;它们在 PHP5.3.0 中已经被废弃,并且在 PHP5.4.0 也由于魔术引号的废弃而失去功能。
- 已废弃的 set_socket_blocking() 函数已被移除,您可以使用 stream_set_blocking() 代替。
- 在 PHP-FPM 不再使用 dl(),在 CLI 和 embed SAPIs 中仍可用。
- GD 库中下列函数被移除:imagepsbbox()、imagepsencodefont()、imagepsextendfont()、imagepsfreefont()、imagepsloadfont()、imagepsslantfont()、imagepstext()
- 在配置文件 php.ini 中,always_populate_raw_post_data、asp_tags、xsl.security_prefs 被移除了。