Други промени
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Други промени
Референца за `migration82.other-changes.php` со подобрена типографија и навигација.
Други промени
Core промени
На iterable типот сега е вградена алијас за време на компајлирање за
array|Траверзабилно. Пораките за грешки поврзани со iterable затоа сега ќе користи array|Traversable. Рефлексијата на типот е зачувана за единечни iterable
(и ?iterable) за да произведе
ReflectionNamedType со име iterable, меѓутоа употребата на iterable во унија типови ќе биде претворена во array|Traversable.
Форматот на датумот на испратените колачиња сега е 'D, d M Y H:i:s \G\M\T'; претходно беше 'D, d-M-Y H:i:s T'.
Промени во SAPI модули
CLI
Стримовите STDOUT, STDERR и STDIN веќе не се затвораат при уништување на ресурсите, што е најчесто кога CLI завршува. Сепак, сè уште е можно експлицитно да се затворат тие стримови користејќи fclose() и слично.
Променети функции
Јадро
На strcmp(), strcasecmp(),
strncmp(), strncasecmp()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
substr_compare() функции, користењето на бинарно безбедно споредување на низи веќе не гарантира враќање
strlen($string1) - strlen($string2) кога должините на низите не се еднакви, но сега може да враќа -1 or 1
наместо тоа. Наместо да зависите од која било конкретна вредност, вратената вредност треба да се спореди со 0.
DBA
dba_open() and dba_popen() сега ја имаат следниот задолжителен потпис:
string
$path,string
$mode,?string
$handler = null,int
$permission = 0644,int
$map_size = 0,?int
$flags = null): resource|false
dba_fetch()опционалниот аргумент за прескокнување сега е на крајот во согласност со PHP семантиката на корисничкиот простор. Неговиот потпис сега е:
Преоптоварениот потпис: сè уште е прифатен, но се препорачува да се користи новата стандардна варијанта.— Разни функции
random_bytes() and random_int() сега фрлаат \Random\RandomException on CSPRNG неуспеси. Претходно обичен \Exception беше фрлен наместо тоа.
SPL
На iterator параметарот
iterator_to_array() and iterator_count()
се проширува до iterable from Итератор, дозволувајќи поминување на низи.
Други промени во екстензиите
Датум
Својствата на DatePeriod се сега правилно декларирани.
Меѓународен
Инстанци на IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Колатор, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, — Земи ги поддржаните локали, IntlTimeZoneПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во — Постави го нивото на ограничување веќе не се серијализираат. Претходно, можеа да се серијализираат, но десеријализацијата даваше неупотребливи објекти или не успеваше.
MySQLi
Поддршката за libmysql е отстранета и веќе не е можно да се компајлира mysqli со libmysql. Отсега, mysqli екстензијата може да се компајлира само со mysqlnd. Сите libmysql функции недостапни во mysqlnd се отстранети:
- Својството reconnect на mysqli_driver
- На mysqli.reconnect INI директивата
- На
MYSQLI_IS_MARIADBконстантата е депрецирана
OCI8
Минималната верзија на Oracle Client библиотеката сега е 11.2.
PCRE
NUL знаци (\0) во стрингови од шема сега се поддржани.
Сесија
Обидот за промена на session.cookie_samesite INI директивата додека сесијата е активна или излезот е веќе испратен сега ќе пропадне и ќе емитува предупредување. Ова го усогласува однесувањето со сите други поставки за сесијата INI.
SQLite3
sqlite3.defensive
сега е INI_USER.
Стандардно
getimagesize() сега пријавува вистински димензии на сликата, битови и канали на AVIF слики. Претходно, димензиите беа пријавени како 0x0, а битовите и каналите не беа пријавени воопшто.
Swoole
Својствата на tidy класата сега се правилно декларирани. И оние на tidyNode класата сега се правилно декларирани како readonly.
candido1212 на yahoo точка com точка br
Zip екстензијата е ажурирана на верзија 1.20.0, која додава следниве методи:
Промени во ракувањето со INI датотеки
Поддршка за бинарни (0b/0B) and octal (0o/0O) prefixes has been added to integer INI settings. Integer INI settings that start with a zero (0) continue to be interpreted as an octal integer.
Parsing of some ill-formatted values will now trigger a warning when this was silently ignored before. For backwards compatibility, interpretation of these values has not changed. This affects the following settings:
- bcmath.scale
- com.code_page
- default_socket_timeout
- fiber.stack_size
- hard_timeout
- intl.error_level
- ldap.max_links
- max_input_nesting_level
- max_input_vars
- mbstring.regex_retry_limit
- mbstring.regex_stack_limit
- mysqli.allow_local_infile
- mysqli.allow_persistent
- mysqli.default_port
- mysqli.max_links
- mysqli.max_persistent
- mysqli.rollback_on_cached_plink
- mysqlnd.log_mask
- mysqlnd.mempool_default_size
- mysqlnd.net_read_buffer_size
- mysqlnd.net_read_timeout
- oci8.default_prefetch
- oci8.max_persistent
- oci8.persistent_timeout
- oci8.ping_interval
- oci8.prefetch_lob_size
- oci8.privileged_connect
- oci8.statement_cache_size
- odbc.allow_persistent
- odbc.check_persistent
- odbc.max_persistent
- odbc.max_links
- odbc.defaultbinmode
- odbc.default_cursortype
- odbc.defaultlrl
- opcache.consistency_checks
- opcache.file_update_protection
- opcache.force_restart_timeout
- opcache.interned_strings_buffer
- opcache.jit_bisect_limit
- opcache.jit_blacklist_root_trace
- opcache.jit_blacklist_side_trace
- opcache.jit_debug
- opcache.jit_hot_func
- opcache.jit_hot_loop
- opcache.jit_hot_return
- opcache.jit_hot_side_exit
- opcache.jit_max_exit_counters
- opcache.jit_max_loop_unrolls
- opcache.jit_max_polymorphic_calls
- opcache.jit_max_recursive_calls
- opcache.jit_max_recursive_returns
- opcache.jit_max_root_traces
- opcache.jit_max_side_traces
- opcache.log_verbosity_level
- opcache.max_file_size
- opcache.opt_debug_level
- opcache.optimization_level
- opcache.revalidate_freq
- output_buffering
- pcre.backtrack_limit
- pcre.recursion_limit
- pgsql.max_links
- pgsql.max_persistent
- post_max_size
- realpath_cache_size
- realpath_cache_ttl
- session.cache_expire
- session.cookie_lifetime
- session.gc_divisor
- session.gc_maxlifetime
- session.gc_probability
- soap.wsdl_cache_limit
- soap.wsdl_cache_ttl
- unserialize_max_depth
- upload_max_filesize
- user_ini.cache_ttl
- xmlrpc_error_number
- zend.assertions
- zlib.output_compression_level