# Deprecated features in PHP 7.0.x

## PHP 4 style constructors

PHP 4 style constructors (methods that have the same name as the class they are defined in) are deprecated, and will be removed in the future. PHP 7 will emit `E_DEPRECATED` if a PHP 4 constructor is the only constructor defined within a class. Classes that implement a `__construct` method are unaffected.

<div class="informalexample">

```
<?php
class foo {
    function foo() {
        echo 'I am the constructor';
    }
}
?>

   
```

ENTITY

    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

       

</div>

## Static calls to non-static methods

[Static](#language.oop5.static) calls to methods that are not declared `static` are deprecated, and may be removed in the future.

<div class="informalexample">

```
<?php
class foo {
    function bar() {
        echo 'I am not static!';
    }
}

foo::bar();
?>

   
```

ENTITY

    Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
    I am not static!

       

</div>

## `password_hash` salt option

The salt option for the `password_hash` function has been deprecated to prevent developers from generating their own (usually insecure) salts. The function itself generates a cryptographically secure salt when no salt is provided by the developer - therefore custom salt generation should not be needed.

## `capture_session_meta` SSL context option

The `capture_session_meta` SSL context option has been deprecated. SSL metadata is now available through the `stream_get_meta_data` function.

## [LDAP](#book.ldap) deprecations

The following function has been deprecated:

- `ldap_sort`