PHP 5.6.x 中已废止的特性
从不兼容的上下文调用方法
现在已废止从不兼容的上下文调用方法, 并且产生 E_DEPRECATED
错误 (以前是 E_STRICT
)。 在 PHP 的后续版本中可能彻底移除对此特性的支持。
以下是不兼容上下文调用方法的示例:
<?php
class A {
function f() { echo get_class($this); }
}
class B {
function f() { A::f(); }
}
(new B)->f();
?>
以上例程会输出:
Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7 B
$HTTP_RAW_POST_DATA 和 always_populate_raw_post_data
使用 always_populate_raw_post_data 会导致在填充 $HTTP_RAW_POST_DATA 时产生 E_DEPRECATED
错误。 请使用 php://input 替代 $HTTP_RAW_POST_DATA, 因为它可能在后续的 PHP 版本中被移除。 设置 always_populate_raw_post_data 为 -1 (这样会强制 $HTTP_RAW_POST_DATA 未定义,所以也不回导致 E_DEPRECATED
的错误) 来体验新的行为。
iconv 和 mbstring 编码设置
iconv 和 mbstring 配置选项中 和编码相关的选项都已废弃, 请使用 default_charset
。 废弃的选项有: