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

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

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

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

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

migration82.incompatible.php

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

Датум

DateTime::createFromImmutable() DOMDocument::registerNodeClass() static, претходно беше DateTime.

DateTimeImmutable::createFromMutable() DOMDocument::registerNodeClass() static, претходно беше DateTimeImmutable.

number симболи во релативни формати веќе не прифаќа повеќе знаци, на пр. +-2.

ODBC

ODBC екстензијата сега ги избегнува корисничкото име и лозинката за случајот кога се поминуваат и стринг за поврзување и корисничко име/лозинка, а стринг мора да се додаде. Претходно, вредностите на корисникот што содржат вредности што треба да се избегнат може да создадат невалиден стринг за поврзување или да внесат вредности од податоци обезбедени од корисникот. Правилата за избегнување треба да бидат идентични со однесувањето на .NET BCL DbConnectionOptions.

PDO_ODBC

PDO_ODBC екстензијата исто така ги избегнува корисничкото име и лозинката кога се поминува стринг за поврзување. Видете го промената на ODBC екстензијата за повеќе детали.

Стандардно

glob() сега враќа празно array ако сите патеки се ограничени од open_basedir. Претходно враќаше false. Покрај тоа, сега се емитува предупредување дури и ако само некои патеки се ограничени од open_basedir.

FilesystemIterator::__construct(): пред PHP 8.2.0, FilesystemIterator::SKIP_DOTS константата секогаш беше поставена и не можеше да се оневозможи. За да се одржи претходното однесување, константата мора експлицитно да се постави кога се користи flags параметарот. Стандардната вредност од flags параметарот не е променета.

strtolower(), strtoupper(), stristr(), stripos(), strripos(), lcfirst(), ucfirst(), ucwords()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во str_ireplace() веќе не се чувствителни на локализација. Тие сега вршат ASCII конверзија на буквите, како да е локализацијата "C". Локализирани верзии на овие функции се достапни во MBString екстензијата. Покрај тоа, array_change_key_case(), а сортирањето со SORT_FLAG_CASE сега исто така користи ASCII конверзија на буквите.

str_split() враќа празно array за празно string сега. Претходно враќаше низа со една празна стринг запис. mb_str_split() не е погоден од оваа промена бидејќи веќе се однесуваше на овој начин.

ksort() and krsort() сега прави нумеричка споредба на низи под SORT_REGULAR користејќи ги стандардните правила на PHP 8 сега.

var_export() веќе не изоставува водечка коса црта за извезени класи, т.е. тие сега се целосно квалификувани.

Стандардна PHP библиотека (SPL)

Следниве методи сега ја наметнуваат својата сигнатура:

SplFileObject::hasChildren() DOMDocument::registerNodeClass() false, претходно беше bool.

SplFileObject::getChildren() DOMDocument::registerNodeClass() null, претходно беше ?RecursiveIterator.

GlobIterator сега враќа празно array ако сите патеки се ограничени од open_basedir. Претходно враќаше false. Покрај тоа, сега се емитува предупредување дури и ако само некои патеки се ограничени од open_basedir.

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

al dot turani at gmail dot com
6 месеци пред
Another backward incompatible change, not mentioned in the docs, is that function `date_default_timezone_get()` no longer returns current time zone.

Prior to 8.2, this function returned:
- Time zone set by `date_default_timezone_set()` (if set).
- Time zone specified in `date.timezone` (if set).
- Current time zone, if none of above applies.

From 8.2 onward, if neither of the first two variants applies, this function returns UTC. This breaks scenarios where current time zone shall be used.

See <https://github.com/php/php-src/issues/11496> for discussion.
На оваа страница

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

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

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

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

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