Deprecated features in PHP 5.6.x

- « New features

- Changed functions »

- PHP Manual
- Migrating from PHP 5.5.x to PHP 5.6.x
- Deprecated features in PHP 5.6.x

## Deprecated features in PHP 5.6.x

### Calls from incompatible context

Methods called from an incompatible context are now deprecated, and will generate `E_DEPRECATED` errors when invoked instead of `E_STRICT`. Support for these calls will be removed in a future version of PHP.

An example of such a call is:

    <?phpclass A {    function f() { echo get_class($this); }}class B {    function f() { A::f(); }}(new B)->f();?>

The above example will output:

    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 and `always_populate_raw_post_data`

`always_populate_raw_post_data` will now generate an `E_DEPRECATED` error when $HTTP_RAW_POST_DATA is populated. New code should use `php://input` instead of $HTTP_RAW_POST_DATA, which will be removed in a future release. You can opt in for the new behaviour (in which $HTTP_RAW_POST_DATA is never defined hence no `E_DEPRECATED` error will be generated) by setting `always_populate_raw_post_data` to `-1`.

### iconv and mbstring encoding settings

The iconv and mbstring configuration options related to encoding have been deprecated in favour of `default_charset`. The deprecated options are:

- `iconv.input_encoding`
- `iconv.output_encoding`
- `iconv.internal_encoding`
- `mbstring.http_input`
- `mbstring.http_output`
- `mbstring.internal_encoding`