PHP 5.6.x で推奨されなくなる機能
非互換のコンテキストからの呼び出し
非互換のコンテキストからのメソッド呼び出しが非推奨となり、
E_STRICT
ではなく E_DEPRECATED
が発生するようになりました。
この機能は、将来のバージョンの PHP で削除される予定です。
具体例を示します。
<?phpclass 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
が発生するようになりました。
新しいコードでは、$HTTP_RAW_POST_DATA
ではなく
php://input
を使うようにしましょう。$HTTP_RAW_POST_DATA
は、将来のバージョンで削除される予定です。
この新しい振る舞い ($HTTP_RAW_POST_DATA
が定義されておらず、E_DEPRECATED
が発生しない状態)
を試すには、
always_populate_raw_post_data
に -1
を設定します。
iconv および mbstring のエンコーディング設定
iconv および
mbstring の、エンコーディングに関するオプションが非推奨となりました。
代わりに
default_charset
を使いましょう。
非推奨になったオプションは、以下のとおりです。
-
iconv.input_encoding
-
iconv.output_encoding
-
iconv.internal_encoding
-
mbstring.http_input
-
mbstring.http_output
-
mbstring.internal_encoding