<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'migration85.incompatible.php',
    1 => 'Altera&ccedil;&otilde;es Incompat&iacute;veis com Vers&otilde;es Anteriores',
    2 => 'Altera&ccedil;&otilde;es Incompat&iacute;veis com Vers&otilde;es Anteriores',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Migrando do PHP 8.4.x para o PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.constants.php',
    1 => 'Novas Constantes Globais',
  ),
  'next' => 
  array (
    0 => 'migration85.deprecated.php',
    1 => 'Recursos Descontinuados',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'appendices/migration85/incompatible.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.incompatible" class="sect1">
 <h2 class="title">Alterações Incompatíveis com Versões Anteriores</h2>

 <div class="sect2" id="migration85.incompatible.core">
  <h3 class="title">Núcleo do PHP</h3>

  <div class="sect3" id="migration85.incompatible.core.array-callable-alias">
   <h4 class="title">Sinônimos <code class="literal">&quot;array&quot;</code> e <code class="literal">&quot;callable&quot;</code></h4>

   <p class="simpara">
    Não é mais possível usar <code class="literal">&quot;array&quot;</code>
    e <code class="literal">&quot;callable&quot;</code> como sinônimos de nomes de classe
    em <span class="function"><a href="function.class-alias.php" class="function">class_alias()</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.loosely-comparing-object">
   <h4 class="title">Comparação livre de objetos incomparáveis</h4>

   <p class="simpara">
    A comparação livre de objetos incomparáveis (por exemplo, enumerações,
    <span class="classname"><a href="class.curlhandle.php" class="classname">CurlHandle</a></span> e outras classes internas) com booleanos
    era inconsistente anteriormente. Se comparado a um booleano literal
    <code class="code">$object == true</code>, se comportaria da mesma forma que
    <code class="code">(bool)$object</code>. Se comparado a um valor estaticamente desconhecido
    <code class="code">$object == $true</code>, sempre retornaria <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Este comportamento foi consolidado para sempre seguir o de
    <code class="code">(bool)$object</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.gc-collect-cycles">
   <h4 class="title">Valor de retorno de gc_collect_cycles()</h4>

   <p class="simpara">
    O valor de retorno de <span class="function"><a href="function.gc-collect-cycles.php" class="function">gc_collect_cycles()</a></span> não mais inclui
    strings e recursos que foram indiretamente coletados através dos ciclos.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.substitute-final-subclasses">
   <h4 class="title">Substituição da palavra-chave &#039;static&#039; em subclasses finais</h4>

   <p class="simpara">
    Agora é permitido substituir <span class="type">static</span> por <span class="type">self</span> ou pelo nome concreto da classe
    em subclasses finais.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.tick-handlers">
   <h4 class="title">Manipuladores de tiques</h4>

   <p class="simpara">
    Os manipuladores de tiques agora são desativados após todas as funções de desligamento
    e destrutores terem sido executadas e os manipuladores de saída terem sido limpos.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.trait-binding">
   <h4 class="title">Vinculação de Traits</h4>

   <p class="simpara">
    Traits agora são vinculados antes da classe superior. Esta é uma alteração comportamental
    sutil mas deve corresponder de forma mais precisa às expectativas do usuário.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.errors-compilation-and-linking">
   <h4 class="title">Erros durante a compilação e à vinculação de classes</h4>

   <p class="simpara">
    Os erros emitidos durante a compilação e a vinculação de classes agora são sempre atrasados
    e tratados após a compilação ou a vinculação de classes. Erros fatais emitidos durante
    a compilação ou a vinculação de classes fazem com que quaisquer erros atrasados ​​sejam tratados
    imediatamente, sem chamar manipuladores de erros definidos pelo usuário.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.exception-by-userdefined-handler">
   <h4 class="title">Exceções lançadas pelo manipulador de erros definido pelo usuário</h4>

   <p class="simpara">
    Exceções lançadas por manipuladores de erros definidos pelo usuário ao lidar com a vinculação de classes
    Erros não são mais promovidos a erros fatais e não impedem a vinculação.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.attribute-during-compilation">
   <h4 class="title">Erro de aplicação de atributo durante a compilação</h4>

   <p class="simpara">
    Aplicar <code class="code">#[\Attribute]</code> a uma classe abstrata, enumeração, interface ou trait
    gera um erro durante a compilação. Anteriormente, o atributo podia ser
    adicionado, mas quando <span class="methodname"><a href="reflectionattribute.newinstance.php" class="methodname">ReflectionAttribute::newInstance()</a></span>
    era chamado, um erro era lançado.
    O erro pode ser adiado da compilação para o momento de execução usando o novo
    atributo <code class="code">#[\DelayedTargetValidation]</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.disable-ini-setting">
   <h4 class="title">Configuração INI disable_classes</h4>

   <p class="simpara">
    A configuração INI <a href="ini.core.php#ini.disable-classes" class="link">disable_classes</a>
    foi removida porque faz com que várias premissas do mecanismo sejam quebradas.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.destruct-non-array-values">
   <h4 class="title">Desconstruindo valores não-array</h4>

   <p class="simpara">
    Desconstruir valores não-array (diferentes de <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>) usando <code class="literal">[]</code> ou <span class="function"><a href="function.list.php" class="function">list()</a></span> agora
    emite um alerta.
    
   </p>

  </div>

  <div class="sect3" id="migration85.incompatible.core.warning-related-to-cast">
   <h4 class="title">Avisos relacionados à conversão</h4>

   <p class="simpara">
    Agora, um aviso é emitido ao converter floats (ou strings que se parecem com
    floats) para inteiros se eles não puderem ser representados como um. Isso afeta conversões explícitas
    implícitas para inteiro.
    
   </p>

   <p class="simpara">
    Agora, um aviso é emitido ao converter NAN para outros tipos.
    
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.incompatible.bzip2">
  <h3 class="title">Bzip2</h3>

  <p class="simpara">
   <span class="function"><a href="function.bzcompress.php" class="function">bzcompress()</a></span> agora lança um <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>
   quando <code class="parameter">$block_size</code> não estiver entre 1 e 9.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.bzcompress.php" class="function">bzcompress()</a></span> agora lança um <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>
   quando <code class="parameter">$work_factor</code> não estiver entre 0 e 250.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.dom">
  <h3 class="title">DOM</h3>

  <p class="simpara">
   Clonar um <span class="classname"><a href="class.domnamednodemap.php" class="classname">DOMNamedNodeMap</a></span>,
   <span class="classname"><a href="class.domnodelist.php" class="classname">DOMNodeList</a></span>, <span class="classname"><a href="class.dom-namednodemap.php" class="classname">Dom\NamedNodeMap</a></span>,
   <span class="classname"><a href="class.dom-nodelist.php" class="classname">Dom\NodeList</a></span>, <span class="classname"><a href="class.dom-htmlcollection.php" class="classname">Dom\HTMLCollection</a></span>,
   e <span class="classname"><a href="class.dom-dtdnamednodemap.php" class="classname">Dom\DtdNamedNodeMap</a></span> agora falha.
   Isto nunca realmente resultou em um objeto funcional, portanto nenhum impacto é esperado.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.fileinfo">
  <h3 class="title">FileInfo</h3>

  <p class="simpara">
   <span class="function"><a href="function.finfo-file.php" class="function">finfo_file()</a></span> e <span class="methodname"><a href="finfo.file.php" class="methodname">finfo::file()</a></span>
   agora lançam um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> em vez de um
   <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> quando <code class="parameter">$filename</code>
   contiver bytes NUL.
   Isso alinha o tipo de erro lançado para ser consistente com o restante da
   linguagem.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.intl">
  <h3 class="title">Intl</h3>

  <p class="simpara">
   A extensão agora requer pelo menos a ICU 57.1.
  </p>

  <p class="simpara">
   <span class="methodname"><a href="intldateformatter.settimezone.php" class="methodname">IntlDateFormatter::setTimeZone()</a></span>/<span class="function"><a href="intldateformatter.settimezone.php" class="function">datefmt_set_timezone()</a></span>
   agora lança um <span class="exceptionname"><a href="class.intlexception.php" class="exceptionname">IntlException</a></span> nas falhas de classes ou
   clones sem inicialização.
  </p>

  <p class="simpara">
   Todos os métodos de <span class="classname"><a href="class.locale.php" class="classname">Locale</a></span> agora lançam um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando o argumento de localidade contiver bytes NUL.
  </p>

  <p class="simpara">
   O comportamento de <strong><code><a href="class.collator.php#collator.constants.sort-regular">Collator::SORT_REGULAR</a></code></strong> em relação
   à manipulação de strings numéricas agora é alinhado com o comportamento de
   <strong><code><a href="array.constants.php#constant.sort-regular">SORT_REGULAR</a></code></strong> na extensão padrão.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.ldap">
  <h3 class="title">LDAP</h3>

  <p class="simpara">
   <span class="function"><a href="function.ldap-get-option.php" class="function">ldap_get_option()</a></span> e <span class="function"><a href="function.ldap-set-option.php" class="function">ldap_set_option()</a></span>
   agora lançam um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando uma opção inválida é passada.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.mbstring">
  <h3 class="title">MBString</h3>

  <p class="simpara">
   As tabelas de dados do Unicode foram atualizadas para Unicode 17.0.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.mysqli">
  <h3 class="title">MySQLi</h3>

  <p class="simpara">
   Chamar o construtor mysqli em um objeto já construído
   não é mais possível e lança um <span class="exceptionname"><a href="class.error.php" class="exceptionname">Error</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.odbc">
  <h3 class="title">ODBC</h3>

  <p class="simpara">
   O ODBC agora pressupõe que pelo menos a funcionalidade ODBC 3.5 esteja disponível.
   A definição ODBCVER e os sinalizadores do sistema de compilação para controlá-la foram removidos.
  </p>

  <p class="simpara">
   O ODBC não possui mais opções de compilação para compilar com drivers específicos (exceto
   para DB2) e remove casos especiais para esses drivers. É altamente
   recomendado o uso de um gerenciador de drivers como o iODBC ou o unixODBC em sistemas não Windows.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.opcache">
  <h3 class="title">Opcache</h3>

  <p class="simpara">
   A extensão Opcache agora está sempre integrada ao binário do PHP e está sempre
   carregada.
   As diretivas INI <a href="opcache.configuration.php#ini.opcache.enable" class="link">opcache.enable</a>
   e <a href="opcache.configuration.php#ini.opcache.enable-cli" class="link">opcache.enable_cli</a> ainda são
   respeitadas.
  </p>

  <p class="simpara">
   As opções de configuração <strong class="option configure">--enable-opcache</strong>/<strong class="option configure">--disable-opcache</strong>
   foram removidas e a compilação não produz mais os objetos <var class="filename">opcache.so</var>
   ou <var class="filename">php_opcache.dll</var>.
  </p>

  <p class="simpara">
   O uso de diretivas INI <code class="literal">zend_extension=opcache.so</code> ou
   <code class="literal">zend_extension=php_opcache.dll</code>
   emitirá um aviso.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pcntl">
  <h3 class="title">PCNTL</h3>

  <p class="simpara">
   <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span> agora lança um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>
   quando as entradas do parâmetro <code class="parameter">$args</code> contiver bytes NUL.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span> agora lança um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>
   quando as entradas ou chaves do parâmetro <code class="parameter">$env_vars</code>
   contiver bytes NUL.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pcre">
  <h3 class="title">PCRE</h3>

  <p class="simpara">
   A extensão foi compilada sem a opção de compilação semi-obsoleta
   PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK.
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo">
  <h3 class="title">PDO</h3>

  <p class="simpara">
   Os argumentos do construtor definidos em conjunto com
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> agora seguem a semântica usual do CUFA
   (<span class="function"><a href="function.call-user-func-array.php" class="function">call_user_func_array()</a></span>).
   Isso significa que as chaves de string se comportarão como um argumento nomeado.
   Além disso, o encapsulamento automático para argumentos por valor passados ​​para um parâmetro por referência
   foi removido, e o aviso usual <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
   sobre isso agora é emitido.
   Para passar uma variável por referência para um argumento do construtor, use a atribuição geral
   de referência de valor de array: <code class="code">$ctor_args = [&amp;$valByRef]</code>.
  </p>

  <p class="simpara">
   Tentar chamar <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span> durante
   uma chamada para <span class="methodname"><a href="pdostatement.fetch.php" class="methodname">PDOStatement::fetch()</a></span>,
   <span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname">PDOStatement::fetchObject()</a></span>,
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>, por exemplo, usando truques como
   passar o objeto de instrução como um argumento do construtor ao buscar em um
   objeto, agora lançará um <span class="exceptionname"><a href="class.error.php" class="exceptionname">Error</a></span>.
  </p>

  <p class="simpara">
   Os valores das constantes <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-classtype">PDO::FETCH_CLASSTYPE</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> e
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-serialize">PDO::FETCH_SERIALIZE</a></code></strong> foram alterados.
  </p>

  <p class="simpara">
   Agora, uma exceção <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> é lançada se
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> for usado com um modo de busca
   diferente de <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>, consistente com
   outras opções de busca.
  </p>

  <p class="simpara">
   Agora, uma exceção <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> é lançada se
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-into">PDO::FETCH_INTO</a></code></strong> for usada como modo de busca em
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>,
   similar a <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-lazy">PDO::FETCH_LAZY</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo-firebird">
  <h3 class="title">PDO_FIREBIRD</h3>

  <p class="simpara">
   Agora, um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> é lançado ao tentar definir um cursor
   com um nome muito longo em um <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> resultante do
   driver Firebird.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.pdo-sqlite">
  <h3 class="title">PDO_SQLITE</h3>

  <p class="simpara">
   O SQLite <span class="methodname"><a href="pdo.quote.php" class="methodname">PDO::quote()</a></span> agora lançará uma exceção
   ou emitirá um aviso, dependendo do modo de erro, se a string contiver
   um byte nulo.
  </p>

  <p class="simpara">
   <span class="methodname"><a href="pdo.sqlitecreatecollation.php" class="methodname">PDO::sqliteCreateCollation()</a></span> agora lançará uma
   exceção se a função de retorno tiver o tipo de retorno errado, tornando-o mais
   alinhado com o comportamento de <span class="methodname"><a href="pdo-sqlite.createcollation.php" class="methodname">Pdo\Sqlite::createCollation()</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.posix">
  <h3 class="title">POSIX</h3>

  <p class="simpara">
   <span class="function"><a href="function.posix-kill.php" class="function">posix_kill()</a></span> agora lança um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando o argumento process_id é
   menor ou maior do que o suportado pela plataforma (intervalo de inteiro com sinal
   ou de longo), <span class="function"><a href="function.posix-setpgid.php" class="function">posix_setpgid()</a></span> agora lança um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando o process_id ou
   o process_group_id é menor que zero ou maior do que o suportado pela
   plataforma.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.posix-setrlimit.php" class="function">posix_setrlimit()</a></span> agora lança um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando os argumentos hard_limit ou
   soft_limit forem menores que -1 ou se soft_limit for maior que
   hard_limit.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.reflection">
  <h3 class="title">Reflection</h3>

  <p class="simpara">
   <span class="methodname"><a href="reflectionattribute.newinstance.php" class="methodname">ReflectionAttribute::newInstance()</a></span> agora pode lançar
   erros para atributos internos se o atributo foi aplicado em um alvo inválido
   e o erro foi atrasado do tempo de compilação para o tempo de execução por meio do atributo
   #[\DelayedTargetValidation].
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.session">
  <h3 class="title">Session</h3>

  <p class="simpara">
   A tentativa de gravar dados de sessão onde <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> tem uma chave
   contendo o caractere pipe (<code class="literal">|</code>) agora emitirá um aviso
   em vez de falhar silenciosamente.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> é mais rigorosa em relação ao argumento &#039;options&#039;.
   Agora, ela lança um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> se
   o array não for um hashmap, ou um <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span>
   se o valor read_and_close não for um tipo válido compatível com int.
  </p>

  <p class="simpara">
   Passar um inteiro <code class="literal">0</code> como o argumento <code class="parameter">locales</code>
   para a função <span class="function"><a href="function.setlocale.php" class="function">setlocale()</a></span> não é mais suportado e agora lança
   um <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.simplexml">
  <h3 class="title">SimpleXML</h3>

  <p class="simpara">
   Passar uma expressão XPath que retorna algo diferente de um conjunto de nós
   para <span class="methodname"><a href="simplexmlelement.xpath.php" class="methodname">SimpleXMLElement::xpath()</a></span> agora emitirá um aviso
   e retornará <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, em vez de falhar silenciosamente e retornar um array vazio.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.snmp">
  <h3 class="title">SNMP</h3>

  <p class="simpara">
   <span class="function"><a href="function.snmpget.php" class="function">snmpget()</a></span>,
   <span class="function"><a href="function.snmpset.php" class="function">snmpset()</a></span>,
   <span class="function"><a href="function.snmp2-get.php" class="function">snmp2_get()</a></span>,
   <span class="function"><a href="function.snmp2-set.php" class="function">snmp2_set()</a></span>,
   <span class="function"><a href="function.snmp3-get.php" class="function">snmp3_get()</a></span>,
   <span class="function"><a href="function.snmp3-set.php" class="function">snmp3_set()</a></span>
   e <span class="methodname"><a href="snmp.construct.php" class="methodname">SNMP::__construct()</a></span> lançam um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando o nome do host
   é muito grande, contém algum byte nulo ou se a porta fornecida
   for negativa ou maior que 65535, os valores de tempo limite e tentativas
   são menores que -1 ou muito grandes.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.soap">
  <h3 class="title">SOAP</h3>

  <p class="simpara">
   <span class="methodname"><a href="soapclient.dorequest.php" class="methodname">SoapClient::__doRequest()</a></span> agora aceita um novo parâmetro
   opcional <code class="parameter">$uriParserClass</code> que aceita
   argumentos de string ou <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
   <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> representa o método original baseado em (<span class="function"><a href="function.parse-url.php" class="function">parse_url()</a></span>),
   enquanto os novos backends serão usados ​​ao passar
   <span class="classname"><a href="class.uri-rfc3986-uri.php" class="classname">Uri\Rfc3986\Uri</a></span> ou <span class="classname"><a href="class.uri-whatwg-url.php" class="classname">Uri\WhatWg\Url</a></span>.
   
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.sockets">
  <h3 class="title">Sockets</h3>

  <p class="simpara">
   <span class="function"><a href="function.socket-create-listen.php" class="function">socket_create_listen()</a></span>,
   <span class="function"><a href="function.socket-bind.php" class="function">socket_bind()</a></span> e <span class="function"><a href="function.socket-sendto.php" class="function">socket_sendto()</a></span>
   agora lançam um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> se a porta for menor
   que 0 ou maior que 65535, e também se alguma das entradas da matriz hints for
   indexada numericamente.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-addrinfo-lookup.php" class="function">socket_addrinfo_lookup()</a></span> agora lança um
   <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> se algum dos valores de dicas não puder
   ser convertido para inteiro e pode lançar um <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> se
   algum desses valores estourar.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-set-option.php" class="function">socket_set_option()</a></span> com as opções
   <strong><code><a href="sockets.constants.php#constant.mcast-leave-group">MCAST_LEAVE_GROUP</a></code></strong>/<strong><code><a href="sockets.constants.php#constant.mcast-leave-source-group">MCAST_LEAVE_SOURCE_GROUP</a></code></strong>
   agora lança uma exceção se o valor não for um objeto ou um array válido.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.socket-set-option.php" class="function">socket_set_option()</a></span> com contexto multicast agora lança um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> quando o socket criado não é da família
   <strong><code><a href="sockets.constants.php#constant.af-inet">AF_INET</a></code></strong>/<strong><code><a href="sockets.constants.php#constant.af-inet6">AF_INET6</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.spl">
  <h3 class="title">SPL</h3>

  <p class="simpara">
   <span class="classname"><a href="class.arrayobject.php" class="classname">ArrayObject</a></span> não aceita mais enumerações, pois modificar as propriedades
   <span class="property">$name</span> ou <span class="property">$value</span> pode quebrar
   as premissas do mecanismo.
  </p>

  <p class="simpara">
   O parâmetro de <span class="methodname"><a href="splfileobject.fwrite.php" class="methodname">SplFileObject::fwrite()</a></span>
   <code class="parameter">$length</code> agora aceita valores nulos.
   O valor padrão foi alterado de <code class="literal">0</code> para <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.standard">
  <h3 class="title">Standard</h3>

  <p class="simpara">
   O uso de uma função da família printf com um formatador que não especificava a
   precisão anteriormente redefinia incorretamente a precisão em vez de tratá-la
   como uma precisão de 0.
  </p>

 </div>

 <div class="sect2" id="migration85.incompatible.tidy">
  <h3 class="title">Tidy</h3>

  <p class="simpara">
   <span class="methodname"><a href="tidy.construct.php" class="methodname">tidy::__construct()</a></span>,
   <span class="methodname"><a href="tidy.parsefile.php" class="methodname">tidy::parseFile()</a></span>,
   <span class="methodname"><a href="tidy.parsestring.php" class="methodname">tidy::parseString()</a></span> agora lançam um
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span> se a configuração contiver um
   valor inválido ou tentar definir uma entrada interna somente leitura,
   e um <span class="exceptionname"><a href="class.typeerror.php" class="exceptionname">TypeError</a></span> se uma chave de configuração não for uma
   string.
  </p>

 </div>

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