Обележани функции
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Обележани функции
Референца за `migration81.deprecated.php` со подобрена типографија и навигација.
Обележани функции
PHP јадро
Имплементирање Countable without __serialize() and __unserialize()
Или само новите методи треба да се имплементираат, ако не се обезбеди поддршка за PHP пред верзија 7.4, или треба да се имплементираат и двете.
Поминување null на не-null параметри на вградени функции
Скаларните типови за вградени функции се null по дифолт. Ова однесување е застарено за да се усогласи со однесувањето на функциите дефинирани од корисникот, каде што скаларните типови мора експлицитно да бидат означени како null.
<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>Имплицитно некомпатибилно float to int conversions
Имплицитното конвертирање на float to int што доведува до губење на прецизноста сега е застарено. Ова влијае на array клучеви, int декларации на типови во коерзивен режим и оператори кои работат на ints.
<?php
$a = [];
$a[15.5]; // deprecated, as key value loses the 0.5 component
$a[15.0]; // ok, as 15.0 == 15
?>Повикување на static елемент на трејт
Повикување на static метод или пристап до static својство директно на трејт е застарено. Статичните методи и својства треба да се пристапуваат само на класа што го користи трејтот.
Враќање на не-array from __sleep()
Враќање на вредност што не е array from __sleep() сега генерира дијагностика.
Враќањето по референца од void function
<?php
function &test(): void {}
?>E_NOTICE кога се повикува:
Only variable references should be returned by reference.
Автовивификација од false
Автовивификацијата е процес на создавање нов array при додавање на вредност. Автовивификацијата е забранета од скаларни вредности, false сепак беше исклучок. Ова сега е застарено.
<?php
$arr = false;
$arr[] = 2; // deprecated
?>Забелешка:
Автовивификација од
nullи неопределени вредности се уште се дозволени:<?php
// From undefined
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// From null
$arr = null;
$arr[] = 2;
?>
ctype
Проверка на не-низа аргументи
Поминувањето на не-низа аргумент е застарено. Во иднина, аргументот ќе се толкува како низа наместо ASCII кодно точка. Во зависност од наменетото однесување, аргументот треба да се префрли на string или експлицитно повикување на
chr() треба да се направи. Сите ctype_*() функции се засегнати.
Датум
date_sunrise() and date_sunset() се застарени во корист на date_sun_info().
strptime() е застарено. Користи date_parse_from_format() наместо тоа (за парсирање независно од локалот), или IntlDateFormatter::parse() (за парсирање зависно од локалот).
strftime() and gmstrftime() се застарени. Користи date() наместо тоа (за форматирање независно од локалот), или Форматирај го времето/датумот GMT/UTC според локалните поставки (за форматирање зависно од локалот).
Филтер
На FILTER_SANITIZE_STRING and
FILTER_SANITIZE_STRIPPED филтрите се застарени.
На filter.default INI директивата е застарена.
GD
На num_points of imagepolygon(),
imageopenpolygon() and imagefilledpolygon()
е укинат.
Хеш
На mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во mhash_get_hash_name() се застарени. Користи го hash_*() функции наместо тоа.
IMAP
На NIL константата е застарена. Користи 0 instead.
Меѓународен
Повикување IntlCalendar::roll() Оваа функција е еквивалентна на повикување
bool аргументот е застарен. Користи 1 and -1 наместо
true and false respectively.
Повеќебајтни низи
Повикување mb_check_encoding() без никакви аргументи е застарено.
MySQLi
На mysqli_driver::$driver_version својството е укинато. Беше бесмислено и застарено, користете PHP_VERSION_ID
instead.
Повикување Обектно-ориентиран стил or
mysqli_get_client_info() со
mysqli аргументот е укинат. Повикајте mysqli_get_client_info() без никакви аргументи за да се добијат информации за верзијата на библиотеката на клиентот.
На mysqli::init() методот е застарен. Заменете ги повиците на parent::init() with parent::__construct().
OCI8
На oci8.old_oci_close_semantics INI директивата е застарена.
ODBC
odbc_result_all() е укинат.
PDO
На PDO::FETCH_SERIALIZE режимот за преземање е укинат.
PgSQL
Не поминувањето на аргументот за конекција до сите pgsql_*()
функции е укинато.
SOAP
На ssl_method опцијата за
SoapClient::__construct() е укинат во корист на опциите за SSL контекст на потокот.
Стандардно
Повикување key(), current(), next(), prev(), reset(), или end() on objects е застарено. Или преобратете го object во array using get_mangled_object_vars() прво, или користете ги методите обезбедени од класа што имплементира Итератор, како на пр. ArrayIterator, наместо тоа.
На auto_detect_line_endings
INI директивата е укината. Доколку е потребно, ракувајте "\r" со прекини на редовите рачно наместо тоа.
На FILE_BINARY and
FILE_TEXT константите се укинати. Тие никогаш немале никакво влијание.