- Deprecated code in php
- Статические вызовы нестатических методов
- Опция salt функции password_hash()
- Опция контекста SSL capture_session_meta
- Устаревшие функции LDAP
- User Contributed Notes
- Deprecated code in php
- Passing null to non-nullable parameters of built-in functions
- Implicit incompatible float to int conversions
- Calling a static element on a trait
- Returning a non- array from __sleep()
- Returning by reference from a void function
- Autovivification from false
- ctype
- Verifying non-string arguments
- Date
- Filter
- GD
- Hash
- IMAP
- Intl
- Multibyte String
- MySQLi
- OCI8
Deprecated code in php
Конструкторы в стиле PHP 4 (методы с тем же именем, что и сам класс) объявлены устаревшими и будут удалены в будущем. В PHP 7 будет выдаваться предупреждение E_DEPRECATED в случае использования таких конструкторов. Классы, реализующие метод __construct() , затронуты не будут.
Результат выполнения данного примера:
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
Статические вызовы нестатических методов
Статические вызовы методов, не определённых как static, объявлены устаревшими и могут быть в будущем запрещены.
Результат выполнения данного примера:
Deprecated: Non-static method foo::bar() should not be called statically in - on line 8 Я не статический!
Опция salt функции password_hash()
Опция salt функции password_hash() была объявлена устаревшей для предотвращения использования разработчиками своих собственных salt (зачастую небезопасных). Функция самостоятельно генерирует криптографически безопасный salt, если он не задан разработчиком, следовательно больше нет нужды в пользовательских генераторах salt.
Опция контекста SSL capture_session_meta
Опция контекста SSL capture_session_meta объявлена устаревшей. Метаданные SSL теперь доступны с помощью функции stream_get_meta_data() .
Устаревшие функции LDAP
Следующие функции были объявлены устаревшими:
User Contributed Notes
- Миграция с PHP 5.6.x на PHP 7.0.x
- Изменения, ломающие обратную совместимость
- Новая функциональность
- Функциональность, объявленная устаревшей в PHP 7.0.x
- Изменённые функции
- Новые функции
- Новые классы и интерфейсы
- Новые глобальные константы
- Изменения в модулях SAPI
- Удалённые модули и SAPI
- Другие изменения
Deprecated code in php
Either only the new methods should be implemented, if no support for PHP prior to version 7.4 is provided, or both should be implemented.
Passing null to non-nullable parameters of built-in functions
Scalar types for built-in functions are nullable by default, this behaviour is deprecated to align with the behaviour of user-defined functions, where scalar types need to be marked as nullable explicitly.
var_dump ( str_contains ( «foobar» , null ));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>?phpImplicit incompatible float to int conversions
The implicit conversion of float to int which leads to a loss in precision is now deprecated. This affects array keys, int type declarations in coercive mode, and operators working on int s.
$a = [];
$a [ 15.5 ]; // deprecated, as key value loses the 0.5 component
$a [ 15.0 ]; // ok, as 15.0 == 15
?>?phpCalling a static element on a trait
Calling a static method, or accessing a static property directly on a trait is deprecated. Static methods and properties should only be accessed on a class using the trait.
Returning a non- array from __sleep()
Returning a value which is not an array from __sleep() now generates a diagnostic.
Returning by reference from a void function
Such a function is contradictory, and already emits the following E_NOTICE when called: Only variable references should be returned by reference .
Autovivification from false
Autovivification is the process of creating a new array when appending to a value. Autovivification is prohibited from scalar values, false however was an exception. This is now deprecated.
Note:
Autovivification from null and undefined values is still allowed:
// From undefined
$arr [] = ‘some value’ ;
$arr [ ‘doesNotExist’ ][] = 2 ;
// From null
$arr = null ;
$arr [] = 2 ;
?>?phpctype
Verifying non-string arguments
Passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to string or an explicit call to chr() should be made. All ctype_*() functions are affected.
Date
strptime() has been deprecated. Use date_parse_from_format() instead (for locale-independent parsing), or IntlDateFormatter::parse() (for locale-dependent parsing).
strftime() and gmstrftime() have been deprecated. Use date() instead (for locale-independent formatting), or IntlDateFormatter::format() (for locale-dependent formatting).
Filter
The FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED filters are deprecated.
The filter.default INI directive is deprecated.
GD
Hash
IMAP
The NIL constant has been deprecated. Use 0 instead.
Intl
Calling IntlCalendar::roll() with a bool argument is deprecated. Use 1 and -1 instead of true and false respectively.
Multibyte String
Calling mb_check_encoding() without any arguments is deprecated.
MySQLi
The mysqli_driver::$driver_version property has been deprecated. It was meaningless and outdated, use PHP_VERSION_ID instead.
Calling mysqli::get_client_info() or mysqli_get_client_info() with the mysqli argument has been deprecated. Call mysqli_get_client_info() without any arguments to obtain the version information of the client library.
The mysqli::init() method has been deprecated. Replace calls to parent::init() with parent::__construct() .
OCI8
The oci8.old_oci_close_semantics INI directive is deprecated.