<?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.deprecated.php',
    1 => 'Устаревшая функциональность',
    2 => 'Устаревшая функциональность',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Миграция с PHP 8.4.x на PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.incompatible.php',
    1 => 'Изменения, которые ломают обратную совместимость',
  ),
  'next' => 
  array (
    0 => 'migration85.other-changes.php',
    1 => 'Другие изменения',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'appendices/migration85/deprecated.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.deprecated" class="sect1">
 <h2 class="title">Устаревшая функциональность</h2>

 <div class="sect2" id="migration85.deprecated.core">
  <h3 class="title">Ядро PHP</h3>

  <div class="sect3" id="migration85.deprecated.core.changes-to-user-output-handler">
   <h4 class="title">Изменения в обработчике вывода пользователя</h4>

   <p class="simpara">
    Попытка вывода результатов (например, с помощью функции <span class="function"><a href="function.echo.php" class="function">echo</a></span>)
    в рамках обработчика вывода пользователя объявлена устаревшей.
    Предупреждение об устаревании будет игнорировать обработчик, производящий вывод,
    чтобы обеспечить его видимость;
    если есть вложенные обработчики вывода, следующий из них всё равно будет использоваться.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.non-canonical-cast-names">
   <h4 class="title">Неканонические названия типов</h4>

   <p class="simpara">
    Неканонические имена типов <code class="literal">(boolean)</code>,
    <code class="literal">(integer)</code>, <code class="literal">(double)</code>,
    и <code class="literal">(binary)</code> объявлены устаревшими,
    используйте вместо них <code class="literal">(bool)</code>, <code class="literal">(int)</code>,
    <code class="literal">(float)</code> и <code class="literal">(string)</code> соответственно.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.case-statements-with-semicolon">
   <h4 class="title">Завершение операторов case точкой с запятой</h4>

   <p class="simpara">
    Завершение операторов case точкой с запятой вместо двоеточия больше не поддерживается.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.the-backtick-operator">
   <h4 class="title">Операторы выполнения</h4>

   <p class="simpara">
    <a href="language.operators.execution.php" class="link">Обратный машинописный апостроф</a>
    как псевдоним функции <span class="function"><a href="function.shell-exec.php" class="function">shell_exec()</a></span> больше не поддерживается.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.return-null-from-debuginfo">
   <h4 class="title">Возвращение null функцией __debugInfo()</h4>

   <p class="simpara">
    Возвращение <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> функцией
    <a href="language.oop5.magic.php#language.oop5.magic.debuginfo" class="link">__debugInfo()</a>
    больше не поддерживается. Вместо этого возвращается пустой массив.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.return-memleaks-ini-directive">
   <h4 class="title">INI-настройка report_memleaks</h4>

   <p class="simpara">
    INI-настройка <a href="errorfunc.configuration.php#ini.report-memleaks" class="link">report_memleaks</a> объявлена устаревшей.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.constant-redeclaration">
   <h4 class="title">Повторное объявление констант</h4>

   <p class="simpara">
    Повторное объявление констант объявлено устаревшим.
    Обратите внимание, что это уже вызвало предупреждение и будет вызывать его и в дальнейшем.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.closure-binding-issues">
   <h4 class="title">Проблемы со связыванием замыканий</h4>

   <p class="para">
    Следующие проблемы с привязкой замыкания,
    которые уже выдают ошибку уровня <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>,
    теперь считаются устаревшими:

    <ul class="simplelist">
     <li>Привязка экземпляра к статическому замыканию.</li>
     <li>Связывание методов с объектами, которые не являются экземплярами класса (или подкласса), в котором метод определен.</li>
     <li>Отвязывание $this от метода.</li>
     <li>Отвязывание $this от замыкания, которое использует `$this`.</li>
     <li>Привязка замыкания к области действия внутреннего класса.</li>
     <li>Перепривязывание области действия замыкания, созданного функцией или методом.</li>
    </ul>
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.sleep-and-wakeup-magic-methods">
   <h4 class="title">Магические методы __sleep() и __wakeup()</h4>

   <p class="simpara">
    Магические методы <a href="language.oop5.magic.php#object.sleep" class="link">__sleep()</a> и <a href="language.oop5.magic.php#object.wakeup" class="link">__wakeup()</a>
    были мягко объявлены устаревшими.
    Вместо них следует использовать магические методы <a href="language.oop5.magic.php#object.serialize" class="link">__serialize()</a>
    и <a href="language.oop5.magic.php#object.unserialize" class="link">__unserialize()</a>,
    либо использовать их одновременно, если требуется совместимость с PHP 7.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.using-null-as-an-array-offset">
   <h4 class="title">Использование null в качестве смещения массива</h4>

   <p class="simpara">
    Использование <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> в качестве смещения массива или при вызове <span class="function"><a href="function.array-key-exists.php" class="function">array_key_exists()</a></span>
    объявлено устаревшим. Вместо этого следует использовать пустую строку.
   </p>

  </div>

  <div class="sect3" id="migration85.deprecated.core.incrementing-non-numeric-strings">
   <h4 class="title">Увеличение нечисловых строк</h4>

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

  </div>

  <div class="sect3" id="migration85.deprecated.core.register-argc-argv-directive">
   <h4 class="title">INI-настройка register_argc_argv</h4>

   <p class="simpara">
    Извлечение <code class="code">$_SERVER[&#039;argc&#039;]</code> и <code class="code">$_SERVER[&#039;argv&#039;]</code>
    из строки запроса для не-CLI SAPIs больше не поддерживается.
    Настройте <code class="literal">register_argc_argv=0</code> и переключитесь
    на <var class="varname"><a href="reserved.variables.get.php" class="classname">$_GET</a></var> или <code class="code">$_SERVER[&#039;QUERY_STRING&#039;]</code>
    для доступа к информации после проверки безопасности использования.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.deprecated.curl">
  <h3 class="title">Модуль cURL</h3>

  <p class="simpara">
   Функция <span class="function"><a href="function.curl-close.php" class="function">curl_close()</a></span> устарела,
   поскольку объекты <span class="classname"><a href="class.curlhandle.php" class="classname">CurlHandle</a></span> освобождаются автоматически.
  </p>

  <p class="simpara">
   Функция <span class="function"><a href="function.curl-share-close.php" class="function">curl_share_close()</a></span> устарела,
   поскольку объекты <span class="classname"><a href="class.curlsharehandle.php" class="classname">CurlShareHandle</a></span> освобождаются автоматически.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.date">
  <h3 class="title">Модуль работы с датой и временем</h3>

  <p class="simpara">
   Константы <strong><code><a href="datetime.constants.php#constant.date-rfc7231">DATE_RFC7231</a></code></strong> и
   <strong><code><a href="class.datetimeinterface.php#datetimeinterface.constants.rfc7231">DateTimeInterface::RFC7231</a></code></strong> устарели.
   Это связано с тем, что связанный с ними часовой пояс игнорируется и всегда используется GMT.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.fileinfo">
  <h3 class="title">Модуль FileInfo</h3>

  <p class="simpara">
   Функция <span class="function"><a href="function.finfo-close.php" class="function">finfo_close()</a></span> устарела,
   поскольку объекты <span class="classname"><a href="class.finfo.php" class="classname">finfo</a></span> освобождаются автоматически.
  </p>

  <p class="simpara">
   Параметр <code class="parameter">$context</code> функции <span class="function"><a href="function.finfo-buffer.php" class="function">finfo_buffer()</a></span> устарел,
   так как игнорируется.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.gd">
  <h3 class="title">Модуль GD</h3>

  <p class="simpara">
   Функция <span class="function"><a href="function.imagedestroy.php" class="function">imagedestroy()</a></span> устарела,
   поскольку объекты <span class="classname"><a href="class.gdimage.php" class="classname">GdImage</a></span> освобождаются автоматически.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.hash">
  <h3 class="title">Фреймворк HASH</h3>

  <p class="simpara">
   Константы <strong><code><a href="mhash.constants.php#constant.mhash-adler32">MHASH_<span class="replaceable">*</span></a></code></strong> устарели.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.intl">
  <h3 class="title">Модуль интернационализации</h3>

  <p class="simpara">
   INI-настройка <a href="intl.configuration.php#ini.intl.error-level" class="link">intl.error_level</a> устарела.
   Ошибки следует проверять вручную или включить исключения с помощью INI-настройки
   <a href="intl.configuration.php#ini.intl.use-exceptions" class="link">intl.use_exceptions</a>.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.ldap">
  <h3 class="title">Модуль LDAP</h3>

  <p class="para">
   Определённые вызовы и константы Oracle Instant Client устарели.

   Список затронутых вызовов:
   <ul class="simplelist">
    <li><span class="function"><a href="function.ldap-connect.php" class="function">ldap_connect()</a></span> с поддержкой wallet</li>
    <li><span class="function"><a href="function.ldap-connect-wallet.php" class="function">ldap_connect_wallet()</a></span></li>
   </ul>

   Список затронутых констант:
   <ul class="simplelist">
    <li><strong><code>GSLC_SSL_NO_UATH</code></strong></li>
    <li><strong><code>GSLC_SSL_ONEWAY_UATH</code></strong></li>
    <li><strong><code>GSLC_SSL_TWOWAY_UATH</code></strong></li>
   </ul>
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.mysqli">
  <h3 class="title">Модуль MySQLi</h3>

  <p class="simpara">
   Функция-псевдоним <span class="function"><a href="function.mysqli-execute.php" class="function">mysqli_execute()</a></span> устарела.
   Вместо неё используйте функцию <span class="function"><a href="mysqli-stmt.execute.php" class="function">mysqli_stmt_execute()</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.openssl">
  <h3 class="title">Модуль OpenSSL</h3>

  <p class="simpara">
   Параметр <code class="parameter">$key_length</code> функции <span class="function"><a href="function.openssl-pkey-derive.php" class="function">openssl_pkey_derive()</a></span> устарел.
   Это связано с тем, что он либо игнорируется, либо обрезает ключ,
   что может представлять угрозу безопасности.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.pdo">
  <h3 class="title">Модуль PDO</h3>

  <p class="simpara">
   Схема DSN <code class="literal">&quot;uri:&quot;</code> объявлена устаревшей из-за проблем безопасности,
   связанных с DSN, поступающими из удалённых URI.
  </p>

  <p class="para">
   Константы, специфичные для драйвера, в классе PDO объявлены устаревшими.
   Список затронутых констант и их замены:

   <ul class="simplelist">
    <li><strong><code>PDO::DBLIB_ATTR_CONNECTION_TIMEOUT</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-connection-timeout">Pdo\Dblib::ATTR_CONNECTION_TIMEOUT</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_QUERY_TIMEOUT</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-query-timeout">Pdo\Dblib::ATTR_QUERY_TIMEOUT</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-stringify-uniqueidentifier">Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_VERSION</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-version">Pdo\Dblib::ATTR_VERSION</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_TDS_VERSION</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-tds-version">Pdo\Dblib::ATTR_TDS_VERSION</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-skip-empty-rowsets">Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS</a></code></strong></li>
    <li><strong><code>PDO::DBLIB_ATTR_DATETIME_CONVERT</code></strong> => <strong><code><a href="class.pdo-dblib.php#pdo-dblib.constants.attr-datetime-convert">Pdo\Dblib::ATTR_DATETIME_CONVERT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-firebird.php#pdo.constants.fb-attr-date-format">PDO::FB_ATTR_DATE_FORMAT</a></code></strong> => <strong><code><a href="class.pdo-firebird.php#pdo-firebird.constants.attr-date-format">Pdo\Firebird::ATTR_DATE_FORMAT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-firebird.php#pdo.constants.fb-attr-time-format">PDO::FB_ATTR_TIME_FORMAT</a></code></strong> => <strong><code><a href="class.pdo-firebird.php#pdo-firebird.constants.attr-time-format">Pdo\Firebird::ATTR_TIME_FORMAT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-firebird.php#pdo.constants.fb-attr-timestamp-format">PDO::FB_ATTR_TIMESTAMP_FORMAT</a></code></strong> => <strong><code><a href="class.pdo-firebird.php#pdo-firebird.constants.attr-timestamp-format">Pdo\Firebird::ATTR_TIMESTAMP_FORMAT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query">PDO::MYSQL_ATTR_USE_BUFFERED_QUERY</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-use-buffered-query">Pdo\Mysql::ATTR_USE_BUFFERED_QUERY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-local-infile">PDO::MYSQL_ATTR_LOCAL_INFILE</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-local-infile">Pdo\Mysql::ATTR_LOCAL_INFILE</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-local-infile-directory">PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-local-infile-directory">Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-init-command">PDO::MYSQL_ATTR_INIT_COMMAND</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-init-command">Pdo\Mysql::ATTR_INIT_COMMAND</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-max-buffer-size">PDO::MYSQL_ATTR_MAX_BUFFER_SIZE</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-max-buffer-size">Pdo\Mysql::ATTR_MAX_BUFFER_SIZE</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-read-default-file">PDO::MYSQL_ATTR_READ_DEFAULT_FILE</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-read-default-file">Pdo\Mysql::ATTR_READ_DEFAULT_FILE</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-read-default-group">PDO::MYSQL_ATTR_READ_DEFAULT_GROUP</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-read-default-group">Pdo\Mysql::ATTR_READ_DEFAULT_GROUP</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-compress">PDO::MYSQL_ATTR_COMPRESS</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-compress">Pdo\Mysql::ATTR_COMPRESS</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-direct-query">PDO::MYSQL_ATTR_DIRECT_QUERY</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-direct-query">Pdo\Mysql::ATTR_DIRECT_QUERY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-found-rows">PDO::MYSQL_ATTR_FOUND_ROWS</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-found-rows">Pdo\Mysql::ATTR_FOUND_ROWS</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ignore-space">PDO::MYSQL_ATTR_IGNORE_SPACE</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ignore-space">Pdo\Mysql::ATTR_IGNORE_SPACE</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-key">PDO::MYSQL_ATTR_SSL_KEY</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-key">Pdo\Mysql::ATTR_SSL_KEY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-cert">PDO::MYSQL_ATTR_SSL_CERT</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-cert">Pdo\Mysql::ATTR_SSL_CERT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-ca">PDO::MYSQL_ATTR_SSL_CA</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-ca">Pdo\Mysql::ATTR_SSL_CA</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-capath">PDO::MYSQL_ATTR_SSL_CAPATH</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-capath">Pdo\Mysql::ATTR_SSL_CAPATH</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-cipher">PDO::MYSQL_ATTR_SSL_CIPHER</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-cipher">Pdo\Mysql::ATTR_SSL_CIPHER</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-verify-server-cert">PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-ssl-verify-server-cert">Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-server-public-key">PDO::MYSQL_ATTR_SERVER_PUBLIC_KEY</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-server-public-key">Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-multi-statements">PDO::MYSQL_ATTR_MULTI_STATEMENTS</a></code></strong> => <strong><code><a href="class.pdo-mysql.php#pdo-mysql.constants.attr-multi-statements">Pdo\Mysql::ATTR_MULTI_STATEMENTS</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-attr-use-cursor-library">PDO::ODBC_ATTR_USE_CURSOR_LIBRARY</a></code></strong> => <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.attr-use-cursor-library">Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-attr-assume-utf8">PDO::ODBC_ATTR_ASSUME_UTF8</a></code></strong> => <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.attr-assume-utf8">Pdo\Odbc::ATTR_ASSUME_UTF8</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-if-needed">PDO::ODBC_SQL_USE_IF_NEEDED</a></code></strong> => <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-if-needed">Pdo\Odbc::SQL_USE_IF_NEEDED</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-driver">PDO::ODBC_SQL_USE_DRIVER</a></code></strong> => <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-driver">Pdo\Odbc::SQL_USE_DRIVER</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-odbc">PDO::ODBC_SQL_USE_ODBC</a></code></strong> => <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-odbc">Pdo\Odbc::SQL_USE_ODBC</a></code></strong></li>
    <li><strong><code><a href="ref.pdo-pgsql.php#pdo.constants.pgsql-attr-disable-prepares">PDO::PGSQL_ATTR_DISABLE_PREPARES</a></code></strong> => <strong><code><a href="class.pdo-pgsql.php#pdo-pgsql.constants.attr-disable-prepares">Pdo\Pgsql::ATTR_DISABLE_PREPARES</a></code></strong></li>
    <li><strong><code>PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES</code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.attr-extended-result-codes">Pdo\Sqlite::ATTR_EXTENDED_RESULT_CODES</a></code></strong></li>
    <li><strong><code>PDO::SQLITE_ATTR_OPEN_FLAGS</code></strong> => <strong><code>Pdo\Sqlite::OPEN_FLAGS</code></strong></li>
    <li><strong><code>PDO::SQLITE_ATTR_READONLY_STATEMENT</code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.attr-readonly-statement">Pdo\Sqlite::ATTR_READONLY_STATEMENT</a></code></strong></li>
    <li><strong><code><a href="pdo.constants.php#pdo.constants.sqlite-deterministic">PDO::SQLITE_DETERMINISTIC</a></code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.deterministic">Pdo\Sqlite::DETERMINISTIC</a></code></strong></li>
    <li><strong><code>PDO::SQLITE_OPEN_READONLY</code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.open-readonly">Pdo\Sqlite::OPEN_READONLY</a></code></strong></li>
    <li><strong><code>PDO::SQLITE_OPEN_READWRITE</code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.open-readwrite">Pdo\Sqlite::OPEN_READWRITE</a></code></strong></li>
    <li><strong><code>PDO::SQLITE_OPEN_CREATE</code></strong> => <strong><code><a href="class.pdo-sqlite.php#pdo-sqlite.constants.open-create">Pdo\Sqlite::OPEN_CREATE</a></code></strong></li>
   </ul>
  </p>

  <p class="para">
   Методы, специфичные для драйвера, в классе PDO объявлены устаревшими.
   Список затронутых методов и их замены:

   <ul class="simplelist">
    <li><span class="methodname"><a href="pdo.pgsqlcopyfromarray.php" class="methodname">PDO::pgsqlCopyFromArray()</a></span> => <span class="methodname"><a href="pdo-pgsql.copyfromarray.php" class="methodname">Pdo\Pgsql::copyFromArray()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqlcopyfromfile.php" class="methodname">PDO::pgsqlCopyFromFile()</a></span> => <span class="methodname"><a href="pdo-pgsql.copyfromfile.php" class="methodname">Pdo\Pgsql::copyFromFile()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqlcopytoarray.php" class="methodname">PDO::pgsqlCopyToArray()</a></span> => <span class="methodname"><a href="pdo-pgsql.copytoarray.php" class="methodname">Pdo\Pgsql::copyToArray()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqlcopytofile.php" class="methodname">PDO::pgsqlCopyToFile()</a></span> => <span class="methodname"><a href="pdo-pgsql.copytofile.php" class="methodname">Pdo\Pgsql::copyToFile()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqlgetnotify.php" class="methodname">PDO::pgsqlGetNotify()</a></span> => <span class="methodname"><a href="pdo-pgsql.getnotify.php" class="methodname">Pdo\Pgsql::getNotify()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqlgetpid.php" class="methodname">PDO::pgsqlGetPid()</a></span> => <span class="methodname"><a href="pdo-pgsql.getpid.php" class="methodname">Pdo\Pgsql::getPid()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqllobcreate.php" class="methodname">PDO::pgsqlLOBCreate()</a></span> => <span class="methodname"><a href="pdo-pgsql.lobcreate.php" class="methodname">Pdo\Pgsql::lobCreate()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqllobopen.php" class="methodname">PDO::pgsqlLOBOpen()</a></span> => <span class="methodname"><a href="pdo-pgsql.lobopen.php" class="methodname">Pdo\Pgsql::lobOpen()</a></span></li>
    <li><span class="methodname"><a href="pdo.pgsqllobunlink.php" class="methodname">PDO::pgsqlLOBUnlink()</a></span> => <span class="methodname"><a href="pdo-pgsql.lobunlink.php" class="methodname">Pdo\Pgsql::lobUnlink()</a></span></li>
    <li><span class="methodname"><a href="pdo.sqlitecreateaggregate.php" class="methodname">PDO::sqliteCreateAggregate()</a></span> => <span class="methodname"><a href="pdo-sqlite.createaggregate.php" class="methodname">Pdo\Sqlite::createAggregate()</a></span></li>
    <li><span class="methodname"><a href="pdo.sqlitecreatecollation.php" class="methodname">PDO::sqliteCreateCollation()</a></span> => <span class="methodname"><a href="pdo-sqlite.createcollation.php" class="methodname">Pdo\Sqlite::createCollation()</a></span></li>
    <li><span class="methodname"><a href="pdo.sqlitecreatefunction.php" class="methodname">PDO::sqliteCreateFunction()</a></span> => <span class="methodname"><a href="pdo-sqlite.createfunction.php" class="methodname">Pdo\Sqlite::createFunction()</a></span></li>
   </ul>
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.pdo-pgsql">
  <h3 class="title">Драйвер PDO_PGSQL</h3>

  <p class="para">
   Константы, связанные с состояниями транзакций, объявлены устаревшими, поскольку функция недоступна в PDO:

   <ul class="simplelist">
    <li><strong><code>PDO::PGSQL_TRANSACTION_IDLE</code></strong></li>
    <li><strong><code>PDO::PGSQL_TRANSACTION_ACTIVE</code></strong></li>
    <li><strong><code>PDO::PGSQL_TRANSACTION_INTRANS</code></strong></li>
    <li><strong><code>PDO::PGSQL_TRANSACTION_INERROR</code></strong></li>
    <li><strong><code>PDO::PGSQL_TRANSACTION_UNKNOWN</code></strong></li>
   </ul>
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.reflection">
  <h3 class="title">Модуль интроспекции кода Reflection</h3>

  <p class="simpara">
   Методы <code class="code">setAccessible()</code> различных объектов Reflection устарели,
   поскольку они больше не имеют значения.
  </p>

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

  <p class="simpara">
   Вызов метода <span class="methodname"><a href="reflectionproperty.getdefaultvalue.php" class="methodname">ReflectionProperty::getDefaultValue()</a></span>
   для свойств без значений по умолчанию больше не поддерживается.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.spl">
  <h3 class="title">Стандартная библиотека PHP (SPL)</h3>

  <p class="simpara">
   Отмена регистрации всех автозагрузчиков путём передачи функции <span class="function"><a href="function.spl-autoload-call.php" class="function">spl_autoload_call()</a></span>
   в качестве callback-аргумента функции <span class="function"><a href="function.spl-autoload-unregister.php" class="function">spl_autoload_unregister()</a></span> больше не поддерживается.
   Вместо этого, если это необходимо, следует пройтись по возвращаемому значению функции <span class="function"><a href="function.spl-autoload-functions.php" class="function">spl_autoload_functions()</a></span>
   и вызвать функцию <span class="function"><a href="function.spl-autoload-unregister.php" class="function">spl_autoload_unregister()</a></span> для каждого значения.
  </p>

  <p class="simpara">
   Методы <span class="methodname"><a href="splobjectstorage.contains.php" class="methodname">SplObjectStorage::contains()</a></span>,
   <span class="methodname"><a href="splobjectstorage.attach.php" class="methodname">SplObjectStorage::attach()</a></span> и
   <span class="methodname"><a href="splobjectstorage.detach.php" class="methodname">SplObjectStorage::detach()</a></span> были признаны устаревшими
   и заменены на <span class="methodname"><a href="splobjectstorage.offsetexists.php" class="methodname">SplObjectStorage::offsetExists()</a></span>,
   <span class="methodname"><a href="splobjectstorage.offsetset.php" class="methodname">SplObjectStorage::offsetSet()</a></span> и
   <span class="methodname"><a href="splobjectstorage.offsetunset.php" class="methodname">SplObjectStorage::offsetUnset()</a></span> соответственно.
  </p>

  <p class="simpara">
   Использование классов <span class="classname"><a href="class.arrayobject.php" class="classname">ArrayObject</a></span> и
   <span class="classname"><a href="class.arrayiterator.php" class="classname">ArrayIterator</a></span> с объектами больше не поддерживается.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.standard">
  <h3 class="title">Стандартные модули</h3>

  <p class="simpara">
   Функция-псевдоним <span class="function"><a href="function.socket-set-timeout.php" class="function">socket_set_timeout()</a></span> больше не поддерживается.
   Вместо неё используйте функцию <span class="function"><a href="function.stream-set-timeout.php" class="function">stream_set_timeout()</a></span>.
  </p>

  <p class="simpara">
   Передача <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> функциям <span class="function"><a href="function.readdir.php" class="function">readdir()</a></span>, <span class="function"><a href="function.rewinddir.php" class="function">rewinddir()</a></span>
   и <span class="function"><a href="function.closedir.php" class="function">closedir()</a></span> для использования последнего открытого каталога
   больше не поддерживается.
   Вместо этого явно укажите последний открытый каталог.
  </p>

  <p class="simpara">
   Передача целых чисел за пределами интервала <code class="literal">[0, 255]</code>
   функции <span class="function"><a href="function.chr.php" class="function">chr()</a></span> теперь не рекомендуется.
   Это связано с тем, что байт может содержать только значение в пределах этого интервала.
  </p>

  <p class="simpara">
   Передача строки, которая не является однобайтовой функции <span class="function"><a href="function.ord.php" class="function">ord()</a></span>
   устарела, это указывает на наличие ошибки.
  </p>

  <p class="simpara">
   Локально предопределенная переменная
   <a href="reserved.variables.httpresponseheader.php" class="link">$http_response_header</a>
   устарела. Вместо этого следует вызывать функцию
   <span class="function"><a href="function.http-get-last-response-headers.php" class="function">http_get_last_response_headers()</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.deprecated.xml">
  <h3 class="title">Модуль XML</h3>

  <p class="simpara">
   Функция <span class="function"><a href="function.xml-parser-free.php" class="function">xml_parser_free()</a></span> устарела,
   поскольку объекты <span class="classname"><a href="class.xmlparser.php" class="classname">XMLParser</a></span> освобождаются автоматически.
  </p>

 </div>

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