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

Некомпатибилни промени воназад

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

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

Референца за `migration83.incompatible.php` со подобрена типографија и навигација.

migration83.incompatible.php

Некомпатибилни промени воназад

PHP јадро

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

Програмите што беа многу блиску до преполнување на стекот на повици сега може да фрлат Грешка при користење повеќе од zend.max_allowed_stack_size-zend.reserved_stack_size бајти од стекот (fiber.stack_size-zend.reserved_stack_size за влакна).

Повеќекратно извршување на proc_get_status()

Извршување proc_get_status() повеќепати сега секогаш ќе враќа точна вредност на POSIX системите. Претходно, само првиот повик на функцијата враќаше точна вредност. Извршување proc_close() after proc_get_status() сега исто така ќе го врати точниот излезен код. Претходно ова би вратило -1. Внатрешно, ова функционира со кеширање на резултатот на POSIX системите. Ако претходното однесување е потребно, можно е да се провери "cached" клучот во низата вратена од proc_get_status() за да се провери дали резултатот е кеширан.

Zend Max Execution Timers

Zend Max Execution Timers сега е овозможен по дифолт за ZTS билдови на Linux.

Употреби на особини со статични својства

Употребите на особини со статични својства сега ќе ги препрогласат статичните својства наследени од родителската класа. Ова ќе создаде посебно складирање на статични својства за тековната класа. Ова е аналогно на додавање на статичното својство директно во класата без особини.

Доделување негативен индекс на празна низа

Доделување негативен индекс $n на празна низа сега ќе осигури дека следниот индекс е $n+1 наместо 0.

Проверка на варијансата на видливоста на константите на класата

Проверката на варијансата на видливоста на константите на класата сега се врши правилно кога се наследува од интерфејси.

Записи на WeakMap чиј клуч се мапира на себеси

WeakMap записи чиј клуч се мапира на себеси (можеби транзитивно) сега може да се отстранат за време на собирањето на циклуси ако клучот не е достапен освен со итерација преку WeakMap (достапноста преку итерација се смета за слаба). Претходно, таквите записи никогаш не би се отстранувале автоматски.

Датум

The DateTime extension has introduced Date extension specific exceptions and errors under the DateError and DateException Проширувањето DateTime воведе специфични исклучоци и грешки за проширувањето Date под

DOM

Повикување Пример #2 Вгнездени потомци, хиерархиите, наместо предупредувања и општи исклучоци. Ова го подобрува ракувањето со грешки, за сметка на потребата да се проверуваат грешки и исклучоци., Ги заменува податоците за знаци со нови јазли. DOMChildNode::before()

Користејќи го DOMParentNode and DOMChildNode на јазол што нема родител сега е no-op наместо исклучок на хиерархијата, што е однесувањето што го бара спецификацијата DOM. DOM_HIERARCHY_REQUEST_ERR DOMExceptionметоди без документ сега работат наместо да фрлаат

Повикување DOMDocument::createAttribute() . Ова е во согласност со однесувањето што го бара спецификацијата DOM.

DOMDocument::createAttribute() без да се специфицира префикс, неправилно би создал стандарден простор на имиња, ставајќи го елементот во просторот на имиња наместо во атрибутот. Оваа грешка сега е поправена. DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException претходно неправилно би фрлало

кога префиксот веќе се користел за различно URI. Сега правилно избира различен префикс кога постои конфликт на имиња на префикси. Беа додадени нови методи и својства на некои DOM класи. Ако класа од кориснички простор наследува од овие класи и декларира метод или својство со истото име, декларациите мора да бидат компатибилни. Во спротивно, ќе се фрли типична грешка при компајлирање за некомпатибилни декларации. Погледнете го and списокот на нови функции нови функции

FFI

за список на новоимплементираните методи и својства. void сега враќаат null C функции што имаат тип на враќање object(FFI\CData:void) { }

DOMImplementation::getFeature()

На opcache.consistency_checks наместо да го враќа следниот објект

Phar

Типот на Phar директивата INI беше отстранета. Оваа функција беше скршена со JIT за следење, како и со кешот за наследување, и беше оневозможена без начин да се овозможи од PHP 8.1.18 и PHP 8.2.5. И JIT за следење и кешот за наследување може да го променат shm откако скриптата ќе биде перзистирана со поништување на нејзиниот контролен збир. Обидот за поправка прескокна преку модифицирачките покажувачи, но беше одбиен поради сложеност. Од оваа причина, беше одлучено да се отстрани функцијата наместо тоа.

Стандардно

На range() константите на класата сега се декларираат.

  • А TypeError функцијата имаше различни промени: objectсега се фрла при поминување resources, или arrays како гранични влезови.
  • Подетално ValueError се фрла при поминување 0 for $step.
  • А ValueError се фрла при користење негативен $step за зголемување на опсезите.
  • Враќа $step е float што може да се толкува како int, сега е така.
  • А ValueError се фрла ако кој било аргумент е бесконечност или NAN.
  • Еден E_WARNING сега се емитува ако $start or $end е празен стринг. Вредноста продолжува да се префрла на вредноста 0.
  • Еден E_WARNING сега се емитува ако $start or $end има повеќе од еден бајт, само ако е не-нумерички стринг.
  • Еден E_WARNING сега се емитува ако $start or $end се префрла на цел број бидејќи другиот граничен влез е број. (на пр. range(5, 'z');).
  • Еден E_WARNING сега се емитува ако $step е float при обид за генерирање опсег на знаци, освен ако двата гранични влеза се нумерички стрингови (на пр. range('5', '9', 0.5); не произведува предупредување).
  • range() сега произведува список на знаци ако еден од граничните влезови е цифра од стринг наместо да го префрла другиот влез во int (на пр. range('9', 'A');).
<?php
range
('9', 'A'); // ["9", ":", ";", "<", "=", ">", "?", "@", "A"], as of PHP 8.3.0
range('9', 'A'); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], prior to PHP 8.3.0
?>

number_format() сега ракува со негативни $decimals вредности со заокружување $num to abs($decimals) цифри пред децималната точка. Претходно, негативни $decimals вредности беа игнорирани.

На file() проверката за грешки на знамињата сега ги фаќа сите невалидни знамиња. Особено FILE_APPEND претходно беше прифатено тивко.

SNMP

Типот на SNMP директивата INI беше отстранета. Оваа функција беше скршена со JIT за следење, како и со кешот за наследување, и беше оневозможена без начин да се овозможи од PHP 8.1.18 и PHP 8.2.5. И JIT за следење и кешот за наследување може да го променат shm откако скриптата ќе биде перзистирана со поништување на нејзиниот контролен збир. Обидот за поправка прескокна преку модифицирачките покажувачи, но беше одбиен поради сложеност. Од оваа причина, беше одлучено да се отстрани функцијата наместо тоа.

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

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

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

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

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

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

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