<?php
ini_set('always_populate_raw_post_data',-1);
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
echo $HTTP_RAW_POST_DATA;
?>
现在已废止从不兼容的上下文调用方法,
并且产生 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
使用 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 配置选项中
和编码相关的选项都已废弃,
请使用 default_charset
。
废弃的选项有:
<?php
ini_set('always_populate_raw_post_data',-1);
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
echo $HTTP_RAW_POST_DATA;
?>