<?php
ini_set('always_populate_raw_post_data',-1);
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
echo $HTTP_RAW_POST_DATA;
?>
非互換のコンテキストからのメソッド呼び出しが非推奨となり、
E_STRICT
ではなく E_DEPRECATED
が発生するようになりました。
この機能は、将来のバージョンの 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
always_populate_raw_post_data
を使うと、$HTTP_RAW_POST_DATA に値が入っている場合に
E_DEPRECATED
が発生するようになりました。
新しいコードでは、$HTTP_RAW_POST_DATA ではなく
php://input
を使うようにしましょう。$HTTP_RAW_POST_DATA
は、将来のバージョンで削除される予定です。
この新しい振る舞い ($HTTP_RAW_POST_DATA が定義されておらず、E_DEPRECATED
が発生しない状態)
を試すには、
always_populate_raw_post_data
に -1
を設定します。
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;
?>