## Изменённые функции

### Ядро PHP

- crypt() теперь генерирует предупреждение `E_NOTICE`, если параметр `salt` опущен.
- substr_compare() теперь принимает `0` в качестве значения параметра `length`.
- unserialize() теперь терпит неудачу, если переданы сериализованные данные, которые были изменены в попытке инстанциировать объект без вызова его конструктора.

### cURL

- Загрузка на сервер с использованием синтаксиса `@file` теперь поддерживается, только если опция `CURLOPT_SAFE_UPLOAD` установлена в `false`. Вместо этого следует пользоваться CURLFile .

### Mcrypt

- Параметр `source` функции mcrypt_create_iv() теперь имеет значение по умолчанию `MCRYPT_DEV_URANDOM` вместо `MCRYPT_DEV_RANDOM`.

### OpenSSL

- stream_socket_enable_crypto() теперь позволяет не указывать параметр `crypto_type`, если контекст потока SSL включает новую опцию `crypto_type`.

### PostgreSQL

- pg_insert(), pg_select(), pg_update() и pg_delete() больше не являются экспериментальными.
- pg_send_execute(), pg_send_prepare(), pg_send_query() и pg_send_query_params() больше не блокируются до завершения записи запроса, если нижележащий поток сокета для соединения с базой данных находится в неблокирующем режиме.

### Reflection

- ReflectionClass::newInstanceWithoutConstructor() теперь позволяет создавать экземпляры из неокончательных (non-final) внутренних классов.

### XMLReader

- XMLReader::getAttributeNs() и XMLReader::getAttributeNo() теперь возвращают `null`, если атрибут не может быть найден, как это делает XMLReader::getAttribute().

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open