PHP.mk документација

Други промени

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

migration84.other-changes.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека migration84.other-changes.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Други промени

Референца за `migration84.other-changes.php` со подобрена типографија и навигација.

migration84.other-changes.php

Други промени

Core промени

Затворања

Closure names have been adjusted to include the parent function's name and the line of definition to make them easier to distinguish, for example within stack traces.

Влакна

Имињата на затворањата се прилагодени за да го вклучат името на родителската функција и линијата на дефиниција за да се олеснат за разликување, на пример во траги на стек.

Префрлувањето на влакна за време на извршувањето на деструкторот сега е дозволено. Претходно беше блокирано поради конфликти со собирањето отпад.

Деструкторите сега може да се извршуваат во посебно влакно: Влакно Кога собирањето отпад е активирано во влакно, деструкторите повикани од GC се извршуваат во посебно влакно: gc_destructor_fiber. Ако ова влакно се суспендира, се создава ново за извршување на преостанатите деструктори. Претходното gc_destructor_fiber веќе не се реферира од GC и може да се собере ако не се реферира на друго место. Објектите чиј деструктор е суспендиран нема да бидат собрани додека деструкторот не се врати или

Ракувачи со излез

се собира. flags параметарот ob_start() статусни знаменца на ракувачот со излез предадени на

output_add_rewrite_var() сега се исчистени. url_rewriter.hosts наместо session.trans_sid_hosts сега користи

Промени во SAPI модули

apache2handler

за избирање домаќини што ќе бидат препишани.

CLI

Поддршката за EOL Apache 2.0 и 2.2 е отстранета. Минималната потребна верзија на Apache сега е 2.4.

FPM

Вградениот сервер бара индексна датотека рекурзивно со поминување низ родителските директориуми во случај да не може да се лоцира наведената датотека. Овој процес претходно беше прескокнат ако патеката изгледаше како да се однесува на датотека, т.е. ако последната компонента на патеката содржеше точка. Во тој случај, беше вратена грешка 404. Однесувањето е променето за да бара индексна датотека во сите случаи.

Испраќањето заглавија без тело сега ќе успее.

На /dev/poll events.mechanism Страницата со статус има ново поле за прикажување на врвот на меморијата.

Променети функции

Јадро

trigger_error() and user_error() поставката за Solaris/Illumos е пензионирана. true наместо bool.

DOM

сега има тип на враќање DOMDocument::registerNodeClass() true наместо boolсега има привремен тип на враќање true . Во пракса можеше да врати само

Хеш

hash_update() DOMDocument::registerNodeClass() true наместо boolсега има привремен тип на враќање true . Во пракса можеше да врати само

Меѓународен

NumberFormatter::ROUND_TOWARD_ZERO and NumberFormatter::ROUND_AWAY_FROM_ZERO се додадени како алијаси за NumberFormatter::ROUND_DOWN and NumberFormatter::ROUND_UP за да биде во согласност со новото PHP_ROUND_* modes.

. Претходно беа од тип DOMDocument::registerNodeClass() ResourceBundle|array|string|int|null.

На idn_to_ascii() and idn_to_utf8() функциите сега секогаш фрлаат ValueErrorСега фрла domain името е празно или предолго.

На idn_to_ascii() and idn_to_utf8() функциите сега секогаш фрлаат ValueError ако variant параметарот не е INTL_IDNA_VARIANT_UTS46.

LibXML

libxml_set_streams_context() сега веднаш фрла TypeError кога на функцијата ќе ѝ се предаде ресурс што не е stream-context, наместо да фрла подоцна кога ќе се користи stream-context.

MBString

Однесувањето на mb_strcut() сега е поконзистентно на невалидни UTF-8 и UTF-16 низи. Нема промена во однесувањето за валидни UTF-8 и UTF-16 низи.

ODBC

На row of odbc_fetch_object(), odbc_fetch_array()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во odbc_fetch_into() сега имаат стандардна вредност од null, во согласност со odbc_fetch_row(). Претходно, стандардните вредности беа -1, -1Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во 0, соодветно.

OpenSSL

На extra_attributes in openssl_csr_new() поставува CSR атрибути наместо DN на субјектот, што претходно беше направено погрешно.

На dn in openssl_csr_new() овозможува поставување на array вредности за единечен запис.

Ново serial_hex додадено на openssl_csr_sign() за да се овозможи поставување сериски броеви во хексадецимален формат.

Парсирање на ASN.1 UTCTime со openssl_x509_parse() се урива ако секундите се изоставени за верзија на OpenSSL под 3.2 (-1 се враќа за такви полиња). OpenSSL верзија над 3.3 веќе не вчитуваше такви сертификати.

PDO

Сега е можно да се преземе вредноста на PDO::ATTR_STRINGIFY_FETCHES атрибутот со Добиј информации за MySQL хост.

Нов PDO::PGSQL_ATTR_RESULT_MEMORY_SIZE е додаден за да се добие употребата на меморијата на резултатите од прашањата со Добиј информации за MySQL хост за драјвери што го поддржуваат.

PDO_FIREBIRD

Сега е можно да се преземе вредноста на FB_ATTR_DATE_FORMAT, FB_ATTR_TIME_FORMAT, FB_ATTR_TIMESTAMP_FORMAT, атрибути со Добиј информации за MySQL хост.

Додадени нови атрибути за специфицирање на нивото на изолација на трансакцијата и режимот на пристап. Додадени се пет константи поврзани со оваа функционалност:

При користење на постојани врски, сега има проверка за живост во конструкторот.

Содржината што се гради се менува во зависност од вредноста на FB_API_VER in ibase.h. Нова статичка метода Pdo\Firebird::getApiVersion() може да се користи за добивање на оваа информација. Оваа информација сега се споменува и во phpinfo().

Пет нови типови на податоци сега се достапни: INT128, DEC16, DEC34, TIMESTAMP_TZ, TIME_TZ . Тие се достапни почнувајќи од Firebird 4.0.

PDO_MYSQL

Сега е можно да се преземе вредноста на PDO::ATTR_FETCH_TABLE_NAMES атрибутот со Добиј информации за MySQL хост.

PDO_PGSQL

Поддршка за преземање на употребата на меморијата на прашањата за PDO::PGSQL_ATTR_RESULT_MEMORY_SIZE.

Ако колоната е од тип FLOAT4OID or FLOAT8OID вредноста сега ќе биде вратена како float наместо string.

PGSQL

На conditions параметарот pg_select() сега е опционално и прифаќа празна низа.

Phar

На Phar::setAlias(), Phar::setDefaultStub() методите сега имаат пробен тип на враќање на true наместо bool.

POSIX

posix_isatty() сега го поставува бројот на грешката кога аргументот за дескриптор на датотека/поток е невалиден.

Рефлексија

ReflectionGenerator::getFunction() сега може да се повика откако генераторот заврши со извршување.

Приклучоци

На backlog параметарот socket_create_listen() сега има стандардна вредност од SOMAXCONN. Претходно, беше 128.

Натриум

На sodium_crypto_aead_aes256gcm_* функциите сега се достапни на aarch64 процесори со ARM криптографски екстензии.

Стандардно

Стандардното 'cost' вредност за PASSWORD_BCRYPT алгоритам за хеширање за password_hash() е зголемен од 10 to 12.

debug_zval_dump() сега покажува дали низата е спакувана.

long2ip() сега има тип на враќање на string наместо string|false.

highlight_string() сега има тип на враќање на string|true наместо string|bool.

print_r() сега има тип на враќање на string|true наместо string|bool.

Закружување со round()

На mode Овие константи се користат за round() функцијата е проширена за да прифаќа RoundingMode|int, прифаќајќи инстанци на нов RoundingMode enum.

Додадени се четири нови режими на round() функцијата: RoundingMode::PositiveInfinity, RoundingMode::NegativeInfinity, RoundingMode::TowardsZero, RoundingMode::AwayFromZero

Внатрешната имплементација за заокружување на цели броеви е препишана за да биде полесна за проверка на точноста и полесна за одржување. Како резултат на препишувањето, поправени се некои грешки при заокружување. На пример, претходно заокружувањето 0.49999999999999994 до најблискиот цел број би резултирало со 1.0 наместо точниот резултат 0.0. Дополнителни влезови може да бидат засегнати и да резултираат со различни излези во споредба со претходните PHP верзии.

Поправена е грешка предизвикана од „претходно заокружување“ на round() функција. Претходно, користењето на „претходно заокружување“ за третирање на вредност како 0.285 (всушност 0.28499999999999998) како децимален број и заокружување до 0.29. Сепак, „претходно заокружување“ неправилно заокружува одредени броеви, така што овој поправка го отстранува „претходното заокружување“ и го менува начинот на споредување на броевите, така што вредностите се правилно заокружени како децимални броеви.

Максималната прецизност што може да се обработи од round() е проширена за една цифра. На пример, round(4503599627370495.5) вратено во 4503599627370495.5, но сега враќа 4503599627370496.

Други промени во екстензиите

cURL

Минималната потребна верзија на libcurl сега е 7.61.0.

На CURLOPT_DNS_USE_GLOBAL_CACHE опцијата веќе нема никакво влијание и се игнорира тивко. Оваа основна функција беше отфрлена во libcurl 7.11.1, а отстранета во libcurl 7.62.0.

GMP

Претворање на GMP објект до bool е сега можно наместо да емитува E_RECOVERABLE_ERROR. Поведението на кастинг е преоптоварено така што GMP објект што го претставува вредноста 0 се префрла на false.

LibXML

Минималната верзија на libxml2 потребна сега е 2.9.4.

Меѓународен

Поведението на класата Intl е нормализирано за секогаш да фрла Грешка исклучоци при обид за користење на неиницијализиран објект, или кога клонирањето не успее.

MBString

Табелите со податоци за Unicode се ажурирани на Unicode 16.0.

MySQLnd

Поддршка за новиот тип на податоци VECTOR од MySQL 9.

OpenSSL

Минималната верзија на OpenSSL потребна сега е 1.1.1.

PDO_PGSQL

Минималната верзија на libpq потребна сега е 10.0.

PGSQL

Минималната верзија на libpq потребна сега е 10.0.

SPL

Пристапи надвор од границите во SplFixedArray сега фрлаат исклучоци од типот OutOfBoundsException наместо RuntimeException. Бидејќи OutOfBoundsException е подкласа на RuntimeException не се прикажуваат промени во однесувањето при обид за фаќање на тие исклучоци.

XSL

Типизираните својства XSLTProcessor::$cloneDocument and XSLTProcessor::$doXInclude сега се декларирани.

(libcurl >= 8.7.0),

Минималната верзија на zlib потребна сега е 1.2.11.

Оваа функција е достапна кога PHP е поврзан со библиотеки на Oracle Database од верзија 10

Јадро

Improved the performance of floating point number parsing and formatting in ZTS builds under highly concurrent loads. This affects the printf() family of functions as well as serialization functions such as json_encode(), или serialize().

sprintf() using only %s and %d specifiers will be compiled into the equivalent string interpolation, avoiding the overhead of a function call and repeatedly parsing the format string.

BCMath

Improved performance of number conversions and operations.

DOM

The performance of DOMNode::C14N() is greatly improved for the case without an xpath query. This can give a time improvement of easily two order of magnitude for documents with tens of thousands of nodes.

Improved performance and reduce memory consumption of XML serialization.

Reduced memory usage of node classes.

FTP

Improved the performance of FTP uploads up to a factor of 10x for large uploads.

Хеш

Added SSE2 and SHA-NI implementations of SHA-256. This improves the performance on supported CPUs by ~1.3x (SSE2), and 3x - 5x (SHA-NI). Credit to Colin Percival / Tarsnap for this optimization.

MBString

mb_strcut() is much faster now for UTF-8 and UTF-16 strings.

Looking up mbstring encoding names is much faster now.

The performance of converting SJIS-win to Unicode is greatly improved.

MySQLnd

Improved the performance of MySQLnd quoting.

PCRE

Improved the performance of named capture groups.

— Разни функции

Improved the performance of Random\Randomizer, with a specific focus on the . Претходно обиченПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во што содржи бараниот број на случајни бајти. methods.

SimpleXML

Improved performance and reduce memory consumption of XML serialization.

Стандардно

The performance of strspn() and strcspn() is greatly improved. They now run in linear time instead of being bounded by quadratic time.

Improved the performance of strpbrk().

get_browser() е многу побрзо сега, до 1,5x - 2,5x за некои тест случаи.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.