<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration85.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'migration85.other-changes.php',
    1 => 'Другие изменения',
    2 => 'Другие изменения',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Миграция с PHP 8.4.x на PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.deprecated.php',
    1 => 'Устаревшая функциональность',
  ),
  'next' => 
  array (
    0 => 'migration85.windows-support.php',
    1 => 'Подержка ОС Windows',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'appendices/migration85/other-changes.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.other-changes" class="sect1">
 <h2 class="title">Другие изменения</h2>

 <div class="sect2" id="migration85.other-changes.core">
  <h3 class="title">Изменения в ядре</h3>

  <div class="sect3" id="migration85.other-changes.core.core">
   <h4 class="title">Ядро PHP</h4>

   <p class="simpara">
    Время высокого разрешения (<span class="function"><a href="function.hrtime.php" class="function">hrtime()</a></span>) в macOS теперь
    использует рекомендуемый
    <code class="code">clock_gettime_nsec_np(CLOCK_UPTIME_RAW)</code> API вместо
    <code class="code">mach_absolute_time()</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.core.cgi-cli">
   <h4 class="title">CGI/CLI</h4>

   <p class="simpara">
    Опция <strong class="option unknown">-z</strong> или <strong class="option unknown">--zend-extension</strong> удалена,
    так как не функционировала.
    Вместо неё используйте <strong class="option unknown">-d zend_extension=[path]</strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.core.pdo-odbc">
   <h4 class="title">PDO_ODBC</h4>

   <p class="simpara">
    Изменено поведение при извлечении данных из больших столбцов.
    Вместо извлечения блоков по 256 байт PDO_ODBC будет пытаться извлекать
    блоки большего размера; в настоящее время это размер страницы за вычетом
    накладных расходов на строку. Драйверы, которые возвращают
    SQL_NO_TOTAL в SQLGetData, также обрабатываются лучше.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.sapi">
  <h3 class="title">Изменения в модулях SAPI</h3>

  <div class="sect3" id="migration85.other-changes.sapi.cli">
   <h4 class="title">CLI</h4>

   <p class="simpara">
    Попытка установить слишком длинное название процесса с помощью
    функции <span class="function"><a href="function.cli-set-process-title.php" class="function">cli_set_process_title()</a></span>
    теперь приведёт к ошибке, а не к молчаливому усечению заданного названия.
   </p>

   <p class="simpara">
    Добавлена новая опция <strong class="option unknown">--ini=diff</strong> для вывода INI-настройки,
    отличной от установленной по умолчанию.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.sapi.fpm">
   <h4 class="title">FPM</h4>

   <p class="simpara">
    FPM с httpd ProxyPass опционально декодирует полный путь к скрипту.
    Добавлена INI-настройка fastcgi.script_path_encoded,
    чтобы предотвратить обновлённое поведение.
   </p>

   <p class="simpara">
    Ограничение журнала доступа FPM теперь учитывает
    значение <a href="install.fpm.configuration.php#log-limit" class="link">log_limit</a>.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.functions">
  <h3 class="title">Изменённые функции</h3>

  <div class="sect3" id="migration85.other-changes.functions.intl">
   <h4 class="title">Функции интернационализации</h4>

   <p class="simpara">
    Функция <span class="function"><a href="function.grapheme-extract.php" class="function">grapheme_extract()</a></span> правильно присваивает
    значение <code class="parameter">$next</code> при пропуске недопустимых начальных байтов.
    Ранее были случаи, когда значение параметра указывало на начало границы графема,
    а не на конец.
   </p>

   <p class="simpara">
    Из сигнатуры функций <span class="function"><a href="transliterator.geterrorcode.php" class="function">transliterator_get_error_code()</a></span>,
    <span class="function"><a href="transliterator.geterrormessage.php" class="function">transliterator_get_error_message()</a></span>,
    <span class="methodname"><a href="transliterator.geterrorcode.php" class="methodname">TransLiterator::getErrorCode()</a></span> и
    <span class="methodname"><a href="transliterator.geterrormessage.php" class="methodname">TransLiterator::getErrorMessage()</a></span> убрано
    возвращаемое значение <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Возвращение значения <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> на самом деле никогда не было возможным.
   </p>

   <p class="simpara">
    Следующие функции теперь поддерживают параметр <code class="parameter">$locale</code>:
    <span class="function"><a href="function.grapheme-strpos.php" class="function">grapheme_strpos()</a></span>,
    <span class="function"><a href="function.grapheme-stripos.php" class="function">grapheme_stripos()</a></span>,
    <span class="function"><a href="function.grapheme-strrpos.php" class="function">grapheme_strrpos()</a></span>,
    <span class="function"><a href="function.grapheme-strripos.php" class="function">grapheme_strripos()</a></span>,
    <span class="function"><a href="function.grapheme-substr.php" class="function">grapheme_substr()</a></span>,
    <span class="function"><a href="function.grapheme-strstr.php" class="function">grapheme_strstr()</a></span> и
    <span class="function"><a href="function.grapheme-stristr.php" class="function">grapheme_stristr()</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.ldap">
   <h4 class="title">Функции LDAP</h4>

   <p class="simpara">
    Функция <span class="function"><a href="function.ldap-get-option.php" class="function">ldap_get_option()</a></span> теперь принимает соединение
    <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, как и функция <span class="function"><a href="function.ldap-set-option.php" class="function">ldap_set_option()</a></span>,
    чтобы обеспечить возможность извлечения глобальных опций.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.libxml">
   <h4 class="title">Функции libxml</h4>

   <p class="simpara">
    Тип возвращаемого значения функции <span class="function"><a href="function.libxml-set-external-entity-loader.php" class="function">libxml_set_external_entity_loader()</a></span>
    изменён на <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.openssl">
   <h4 class="title">Функции OpenSSL</h4>

   <p class="simpara">
    Добавлен новый параметр <code class="parameter">$digest_algo</code>
    функциям <span class="function"><a href="function.openssl-public-encrypt.php" class="function">openssl_public_encrypt()</a></span> и
    <span class="function"><a href="function.openssl-private-decrypt.php" class="function">openssl_private_decrypt()</a></span>,
    который позволяет указать алгоритм хеширования
    для заполнения OAEP.
   </p>

   <p class="simpara">
    Добавлен новый параметр <code class="parameter">$padding</code>
    функциям <span class="function"><a href="function.openssl-sign.php" class="function">openssl_sign()</a></span> и
    <span class="function"><a href="function.openssl-verify.php" class="function">openssl_verify()</a></span>,

    <span class="function"><a href="function.openssl-sign.php" class="function">openssl_sign()</a></span> and <span class="function"><a href="function.openssl-verify.php" class="function">openssl_verify()</a></span>
    have a new parameter <code class="parameter">$padding</code>,
    который позволяет использовать более
    безопасную подкладку RSA PSS.
   </p>

   <p class="simpara">
    Параметр <code class="parameter">$cipher_algo</code> функции <span class="function"><a href="function.openssl-cms-encrypt.php" class="function">openssl_cms_encrypt()</a></span>
    может быть строкой с именем шифра.
    Это позволяет использовать больше алгоритмов, включая алгоритмы шифрования AES GCM для
    данных с авторизацией.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pcntl">
   <h4 class="title">Функции PCNTL</h4>

   <p class="simpara">
    Тип возвращаемого значения функции <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span>
    изменён на <span class="type"><a href="language.types.singleton.php" class="type false">false</a></span>.
   </p>

   <p class="simpara">
    Функция <span class="function"><a href="function.pcntl-waitid.php" class="function">pcntl_waitid()</a></span> принимает дополнительный аргумент
    <code class="parameter">resource_usage</code> для сбора различных платформенных
    метрик о дочернем процессе.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pdo-pgsql">
   <h4 class="title">Функции PDO_PGSQL</h4>

   <p class="simpara">
    Метод <span class="methodname"><a href="pdo-pgsql.copyfromarray.php" class="methodname">Pdo\Pgsql::copyFromArray()</a></span> теперь
    поддерживает входные данные типа <span class="type"><a href="language.types.iterable.php" class="type iterable">iterable</a></span>.
   </p>

   <p class="simpara">
    Метод <span class="methodname"><strong>Pdo\Pgsql::setAttribute()</strong></span> и
    <span class="methodname"><strong>Pdo\Pgsql::prepare()</strong></span> поддерживают
    установку значения <strong><code><a href="pdo.constants.php#pdo.constants.attr-prefetch">PDO::ATTR_PREFETCH</a></code></strong> в 0,
    что переводит систему в режим отложенной выборки.
    В этом режиме операторы не могут выполняться параллельно.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pgsql">
   <h4 class="title">Функции PostgreSQL</h4>

   <p class="simpara">
    Функция <span class="function"><a href="function.pg-copy-from.php" class="function">pg_copy_from()</a></span> теперь
    поддерживает входные данные типа <span class="type"><a href="language.types.iterable.php" class="type iterable">iterable</a></span>.
   </p>

   <p class="simpara">
    Функция <span class="function"><a href="function.pg-connect.php" class="function">pg_connect()</a></span> проверяет,
    содержит ли аргумент <code class="parameter">connection_string</code> нулевой байт.
   </p>

   <p class="simpara">
    Функция <span class="function"><strong>pg_close_stmt()</strong></span> проверяет,
    содержит ли аргумент <code class="parameter">statement_name</code> нулевой байт.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.posix">
   <h4 class="title">Функции POSIX</h4>

   <p class="simpara">
    Функция <span class="function"><a href="function.posix-ttyname.php" class="function">posix_ttyname()</a></span> устанавливает last_error
    в EBADF при обнаружении
    некорректного файлового дескриптора.
   </p>

   <p class="simpara">
    Функция <span class="function"><a href="function.posix-isatty.php" class="function">posix_isatty()</a></span> выдаёт ошибку уровня <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
    при обнаружении некорректного файлового дескриптора.
   </p>

   <p class="simpara">
    Функция <span class="function"><a href="function.posix-fpathconf.php" class="function">posix_fpathconf()</a></span> проверяет некорректные файловые дескрипторы,
    устанавливает last_error в EBADF и выдаёт ошибку уровня <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.reflection">
   <h4 class="title">Функции интроспекции кода Reflection</h4>

   <p class="simpara">
    Вывод метода <span class="methodname"><a href="reflectionclass.tostring.php" class="methodname">ReflectionClass::__toString()</a></span> для перечислений изменён,
    чтобы лучше показать, что класс является перечислением,
    а элементы перечисления являются именно элементами перечисления,
    а не обычными константами класса.
   </p>

   <p class="simpara">
    Вывод метода <span class="methodname"><a href="reflectionproperty.tostring.php" class="methodname">ReflectionProperty::__toString()</a></span> для свойств с хуками изменён,
    чтобы указать, у каких хуков есть свойство, являются ли эти хуки окончательными
    и является ли свойство виртуальным.
    Это также влияет на вывод метода <span class="methodname"><a href="reflectionclass.tostring.php" class="methodname">ReflectionClass::__toString()</a></span>,
    когда класс содержит свойства с хуками.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.sockets">
   <h4 class="title">Функции Sockets</h4>

   <p class="simpara">
    Функции <span class="function"><a href="function.socket-create.php" class="function">socket_create()</a></span>/<span class="function"><a href="function.socket-bind.php" class="function">socket_bind()</a></span>
    могут создавать сокеты семейства <strong><code>AF_PACKET</code></strong>.
   </p>

   <p class="simpara">
    Функция <span class="function"><a href="function.socket-getsockname.php" class="function">socket_getsockname()</a></span> получает индекс интерфейса
    и его строковое представление с помощью сокета <strong><code>AF_PACKET</code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.zlib">
   <h4 class="title">Функции Zlib</h4>

   <p class="simpara">
    Параметр <code class="parameter">$use_include_path</code> функций <span class="function"><a href="function.gzfile.php" class="function">gzfile()</a></span>,
    <span class="function"><a href="function.gzopen.php" class="function">gzopen()</a></span> и <span class="function"><a href="function.readgzfile.php" class="function">readgzfile()</a></span> изменён
    с целого числа (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>) на логическое значение (<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>).
   </p>

   <p class="simpara">
    Функции <span class="function"><a href="function.gzfile.php" class="function">gzfile()</a></span>,
    <span class="function"><a href="function.gzopen.php" class="function">gzopen()</a></span> и <span class="function"><a href="function.readgzfile.php" class="function">readgzfile()</a></span>
    теперь учитывают контекст потока по умолчанию.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.extensions">
  <h3 class="title">Другие изменения в модулях</h3>

  <div class="sect3" id="migration85.other-changes.extensions.curl">
   <h4 class="title">Модуль cURL</h4>

   <p class="simpara">
    Функция <span class="function"><a href="function.curl-setopt.php" class="function">curl_setopt()</a></span> со
    значением опции <strong><code><a href="curl.constants.php#constant.curlopt-followlocation">CURLOPT_FOLLOWLOCATION</a></code></strong>
    больше рассматривается не как логическое значение, а как целое число для обработки
    <strong><code>CURLFOLLOW_OBEYCODE</code></strong> и <strong><code>CURLFOLLOW_FIRSTONLY</code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.fileinfo">
   <h4 class="title">Модуль Fileinfo</h4>

   <p class="simpara">
    Обновлён файл с версии 5.45 до 5.46.
   </p>

   <p class="simpara">
    Тип возвращаемого значения функции <span class="function"><a href="function.finfo-close.php" class="function">finfo_close()</a></span> был изменён на
    <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span> вместо <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.intl">
   <h4 class="title">Модуль интернационализации</h4>

   <p class="simpara">
    Внутренний механизм ошибок Intl был модернизирован,
    чтобы более точно указывать, какой участок кода вызвал ту или иную ошибку.
    Кроме того, некоторые исключения ext/date теперь
    заключены в <span class="classname"><a href="class.intlexception.php" class="classname">IntlException</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.lexbor">
   <h4 class="title">Модуль Lexbor</h4>

   <p class="simpara">
    Добавлен всегда включенный модуль lexbor. Он содержит библиотеку lexbor,
    которая была отделена от <a href="book.dom.php" class="link">ext/dom</a>
    для повторного использования в других модулях.
    Новый модуль не доступно напрямую пользователям.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.opcache">
   <h4 class="title">Модуль Opcache</h4>

   <p class="simpara">
    Модуль <a href="book.opcache.php" class="link">Opcache</a> теперь всегда
    встроен в бинарный файл PHP и всегда загружается.
    INI-директивы <a href="opcache.configuration.php#ini.opcache.enable" class="link">opcache.enable</a> и
    <a href="opcache.configuration.php#ini.opcache.enable-cli" class="link">opcache.enable_cli</a> по-прежнему соблюдаются.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.pcre">
   <h4 class="title">Модуль PCRE</h4>

   <p class="simpara">
    Обновлена библиотека pcre2lib с версии 10.44 до 10.46.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.pdo-sqlite">
   <h4 class="title">Модуль PDO_Sqlite</h4>

   <p class="simpara">
    Увеличена поддержка минимальной версии с 3.7.7 до 3.7.17.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.readline">
   <h4 class="title">Модуль Readline</h4>

   <p class="simpara">
    Тип возвращаемого значения функций <span class="function"><a href="function.readline-add-history.php" class="function">readline_add_history()</a></span>,
    <span class="function"><a href="function.readline-clear-history.php" class="function">readline_clear_history()</a></span> и <span class="function"><a href="function.readline-callback-handler-install.php" class="function">readline_callback_handler_install()</a></span>
    был изменён с <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span> на <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.reflection">
   <h4 class="title">Модуль интроспекции кода Reflection</h4>

   <p class="simpara">
    Класс <span class="classname"><a href="class.reflectionconstant.php" class="classname">ReflectionConstant</a></span> больше не является окончательным.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.ini">
  <h3 class="title">Изменения обработки INI-файла</h3>

  <div class="sect3" id="migration85.other-changes.ini.core">
   <h4 class="title">Ядро PHP</h4>

   <p class="simpara">
    Добавлен параметр fatal_error_backtraces для управления тем,
    должны ли фатальные ошибки включать обратную трассировку.
   </p>

   <p class="simpara">
    Добавлена INI-настройка max_memory_limit, доступная только при запуске,
    для управления максимальным значением memory_limit, которое может быть настроено
    при запуске или во время работы.
    Превышение значения выдаёт предупреждение, если не установлено значение -1,
    и устанавливает memory_limit в текущее значение max_memory_limit.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.ini.opcache">
   <h4 class="title">Модуль Opcache</h4>

   <p class="simpara">
    Добавлена опция opcache.file_cache_read_only для поддержки
    каталога <a href="opcache.configuration.php#ini.opcache.file-cache" class="link">opcache.file_cache</a>
    только для чтения, для использования с файловыми системами только для чтения
    (например, контейнерами Docker только для чтения).

    Лучше всего использовать с <code class="literal">opcache.validate_timestamps=0</code>,
    <code class="literal">opcache.enable_file_override=1</code> и <code class="literal">opcache.file_cache_consistency_checks=0</code>.
   </p>

   <blockquote class="note"><p><strong class="note">Замечание</strong>: 
    <span class="simpara">
     Кеш, сгенерированный с помощью другой сборки PHP, другого пути к файлу
     или других настроек (включая загружаемые модули), может быть проигнорирован.
    </span>
   </p></blockquote>

   <p class="simpara">
    Значение по умолчанию <a href="opcache.configuration.php#ini.opcache.jit-hot-loop" class="link">opcache.jit_hot_loop</a>
    теперь 61 (простое число), чтобы предотвратить его кратность количеству итераций цикла.
    Рекомендуется устанавливать для этого параметра простое число.
   </p>

   <p class="simpara">
    Изменение <a href="opcache.configuration.php#ini.opcache.memory-consumption" class="link">opcache.memory_consumption</a>
    при уже настроенном OPcache SHM теперь будет правильно сообщать об ошибке,
    а не молчаливо ничего не делать и показывать в PHPInfo вводящие в заблуждение значения.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.ini.openssl">
   <h4 class="title">Модуль OpenSSL</h4>

   <p class="simpara">
    Добавлена опция openssl.libctx для выбора типа контекста библиотеки OpenSSL.
    Можно использовать либо настраиваемый libctx для каждого потока,
    либо один глобальный (по умолчанию) libctx.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.performance">
  <h3 class="title">Производительность</h3>

  <div class="sect3" id="migration85.other-changes.performance.core">
   <h4 class="title">Ядро PHP</h4>

   <p class="simpara">
    Удалены OP-коды для сравнения идентичности с логическими значениями,
    в частности для шаблона <code class="code">match(true)</code>.
   </p>

   <p class="simpara">
    Добавлена специализация OPcode для сравнений
    <code class="code">=== []</code> и <code class="code">!== []</code>.
   </p>

   <p class="simpara">
    Создание объектов исключений теперь происходит намного быстрее.
   </p>

   <p class="simpara">
    Части кода, в которых использовался SSE2,
    были адаптированы для использования SIMD с ARM NEON.
   </p>

   <p class="simpara">
    Введена виртуальная машина TAILCALL, включенная по умолчанию при компиляции
    с Clang&gt;=19 на x86_64 или aarch64. Виртуальная машина TAILCALL работает так же быстро,
    как виртуальная машина HYBRID, используемая при компиляции с GCC.
    Благодаря этому бинарные файлы PHP, скомпилированные с Clang&gt;=19, работают так же быстро,
    как бинарные файлы, скомпилированные с GCC.
    Производительность виртуальной машины CALL, используемой с другими компиляторами,
    также значительно улучшилась.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.intl">
   <h4 class="title">Модуль интернационализации</h4>

   <p class="simpara">
    Теперь не создаются лишние копии строк при
    преобразовании строк для использования в сортировщике.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.mbstring">
   <h4 class="title">Модуль MBString</h4>

   <p class="simpara">
    Части кода, в которых использовался SSE2,
    были адаптированы для использования SIMD с ARM NEON.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.opcache">
   <h4 class="title">Модуль Opcache</h4>

   <p class="simpara">
    Улучшена производительность извлечения переменных TLS в коде JIT в сборках без Glibc.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.reflection">
   <h4 class="title">Модуль интроспекции кода Reflection</h4>

   <p class="para">
    Улучшена производительность следующих методов:
    <ul class="simplelist">
     <li><span class="methodname"><a href="reflectionproperty.getvalue.php" class="methodname">ReflectionProperty::getValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.getrawvalue.php" class="methodname">ReflectionProperty::getRawValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.isinitialized.php" class="methodname">ReflectionProperty::isInitialized()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.isinitialized.php" class="methodname">ReflectionProperty::isInitialized()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.setvalue.php" class="methodname">ReflectionProperty::setValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.setrawvalue.php" class="methodname">ReflectionProperty::setRawValue()</a></span></li>
    </ul>
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.spl">
   <h4 class="title">Модуль SPL</h4>

   <p class="simpara">
    Улучшена производительность методов доступа к
    размерам и методов <span class="classname"><a href="class.splfixedarray.php" class="classname">SplFixedArray</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.standard">
   <h4 class="title">Стандартные модули</h4>

   <p class="simpara">
    Улучшенная производительность функций для работы с массивами с callback-функциями
    (<span class="function"><a href="function.array-find.php" class="function">array_find()</a></span>, <span class="function"><a href="function.array-filter.php" class="function">array_filter()</a></span>,
    <span class="function"><a href="function.array-map.php" class="function">array_map()</a></span>, <span class="function"><a href="function.usort.php" class="function">usort()</a></span>, ...).
   </p>

   <p class="simpara">
    Улучшена производительность функций <span class="function"><a href="function.urlencode.php" class="function">urlencode()</a></span> и
    <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span>.
   </p>

   <p class="simpara">
    Улучшена производительность функции <span class="function"><a href="function.unpack.php" class="function">unpack()</a></span>
    с безымянными повторениями за счёт отказа от создания
    временных строк и их повторного анализа.
   </p>

   <p class="simpara">
    Улучшена производительность функции <span class="function"><a href="function.pack.php" class="function">pack()</a></span>.
   </p>

   <p class="simpara">
    Незначительные улучшения производительности функции <span class="function"><a href="function.array-chunk.php" class="function">array_chunk()</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.xml">
   <h4 class="title">Модуль XML</h4>

   <p class="simpara">
    Улучшена производительность доступа к свойству класса <span class="classname"><a href="class.xmlreader.php" class="classname">XMLReader</a></span>.
   </p>

   <p class="simpara">
    Улучшена производительность класса <span class="classname"><a href="class.xmlwriter.php" class="classname">XMLWriter</a></span>
    и уменьшено потребление памяти.
   </p>

  </div>

 </div>

</div><?php manual_footer($setup); ?>