Files
archived-doc-pt-br/appendices/migration74/deprecated.xml
2025-09-01 13:26:14 -03:00

292 lines
9.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4642b715f374b4220884fa110b6529ac948799b5 Maintainer: leonardolara Status: ready --><!-- CREDITS: geekcom,ae,leonardolara -->
<sect1 xml:id="migration74.deprecated">
<title>Recursos descontinuados</title>
<sect2 xml:id="migration74.deprecated.core">
<title>Núcleo do PHP</title>
<sect3 xml:id="migration74.deprecated.core.nested-ternary">
<title>Operadores ternários aninhados sem parênteses explícitos</title>
<para>
Operações ternárias aninhadas devem usar explicitamente parênteses
para ditar a ordem das operações. Anteriormente, quando usada
sem parênteses, a associatividade esquerda não resultava
no comportamento esperado na maioria dos casos.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
1 ? 2 : 3 ? 4 : 5; // descontinuado
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
]]>
</programlisting>
</informalexample>
</para>
<para>
Parênteses <emphasis>não</emphasis> são necessários quando organizando um operando interno,
pois não gera ambiguidade ou problemas de associatividade:
<informalexample>
<programlisting role="php">
<![CDATA[
1 ? 2 ? 3 : 4 : 5 // ok
]]>
</programlisting>
</informalexample>
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.array-string-access-curly-brace">
<title>Acesso a valores de array e string usando chaves</title>
<para>
O acesso a valor de string e array usando a sintaxe de chaves está
descontinuado. Use <literal>$var[$idx]</literal> ao invés de
<literal>$var{$idx}</literal>.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.real">
<title>A conversão (real) e a função <function>is_real</function></title>
<para>
A conversão <literal>(real)</literal> está descontinuada,
use <literal>(float)</literal> em seu lugar.
</para>
<para>
A função <function>is_real</function> também está descontinuada,
use <function>is_float</function> em seu lugar.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.unbind-this">
<title>Desvinculando <literal>$this</literal> quando <literal>$this</literal> é usado</title>
<para>
Desvincular <literal>$this</literal> de uma closure não estática
que usa <literal>$this</literal> está descontinuado.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.parent">
<title>A palavra chave <literal>parent</literal> sem uma classe parent</title>
<para>
Usar a palavra chave <literal>parent</literal> dentro de uma classe sem parent
está descontinuado, e lançará um erro em tempo de compilação no futuro.
Atualmente um erro será gerado apenas se/quando o parent for
acessado em tempo de execução.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.allow-url-include">
<title>A diretiva INI allow_url_include</title>
<para>
A diretiva <link linkend="ini.allow-url-include">allow_url_include</link>
está descontinuada. Ativá-la gerará
um aviso de descontinuação na inicialização.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.invalid-base-characters">
<title>Caracteres inválidos nas funções de conversão de base</title>
<para>
Passar caracteres inválidos para as funções: <function>base_convert</function>,
<function>bindec</function>, <function>octdec</function> e
<function>hexdec</function> agora gerará um aviso de descontinuação.
O resultado ainda será calculado como se os caracteres inválidos não existissem.
Os espaços em branco à esquerda e à direita, bem como os prefixos do tipo 0x (dependendo da base)
continuam sendo permitidos.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.array-key-exists-objects">
<title>Usando <function>array_key_exists</function> em objetos</title>
<para>
O uso de <function>array_key_exists</function> em objetos está descontinuado.
Em vez disso <function>isset</function> ou <function>property_exists</function>
deve ser usado.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.magic-quotes-functions">
<title>Funções magic quotes</title>
<para>
As funções <function>get_magic_quotes_gpc</function> e <function>get_magic_quotes_runtime</function>
estão descontinuadas. Elas sempre retornam &false;.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.hebrevc">
<title>Função <function>hebrevc</function></title>
<para>
A função <function>hebrevc</function> está descontinuada.
Ela pode ser substituída por <literal>nl2br(hebrev($str))</literal> ou,
preferencialmente, pelo uso do suporte Unicode RTL.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.convert-cyr-string">
<title>Função <function>convert_cyr_string</function></title>
<para>
A função <function>convert_cyr_string</function> está descontinuada.
Pode ser substituída por um dos <function>mb_convert_string</function>,
<function>iconv</function> ou <classname>UConverter</classname>.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.money-format">
<title>Função <function>money_format</function></title>
<para>
A função <function>money_format</function> está descontinuada.
Ela pode ser substituída pela funcionalidade intl <classname>NumberFormatter</classname>.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.ezmlm-hash">
<title>Função <function>ezmlm_hash</function></title>
<para>
A função <function>ezmlm_hash</function> está descontinuada.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.restore-include-path">
<title>Função <function>restore_include_path</function></title>
<para>
A função <function>restore_include_path</function> está descontinuada.
Pode ser substituída por <literal>ini_restore('include_path')</literal>.
</para>
</sect3>
<sect3 xml:id="migration74.deprecated.core.implode-reverse-parameters">
<title>Implode com a ordem histórica dos parâmetros</title>
<para>
A passagem de parâmetros para a função <function>implode</function> na ordem reversa
está descontinuada, use <literal>implode($glue, $parts)</literal>
em vez de <literal>implode($parts, $glue)</literal>.
</para>
</sect3>
</sect2>
<sect2 xml:id="migration74.deprecated.com">
<title>COM</title>
<para>
A importação de bibliotecas de tipos com registro constante
que não diferencia maiúsculas de minúsculas foi descontinuada.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.filter">
<title>Filter</title>
<para>
<constant>FILTER_SANITIZE_MAGIC_QUOTES</constant> está descontinuada,
use <constant>FILTER_SANITIZE_ADD_SLASHES</constant> em seu lugar.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.mbstring">
<title>Multibyte String</title>
<para>
A passagem de um padrão não-string para a função <function>mb_ereg_replace</function>
está descontinuado. Atualmente, os padrões não-string são interpretados como
pontos de código ASCII. No PHP 8, o padrão será interpretado como
uma string.
</para>
<para>
Passar a codificação como terceiro parâmetro para a função <function>mb_strrpos</function>
está descontinuado. Em vez disso, passe um offset 0 e a codificação como quarto parâmetro.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.ldap">
<title>Lightweight Directory Access Protocol</title>
<para>
<function>ldap_control_paged_result_response</function> e
<function>ldap_control_paged_result</function> estão descontinuadas.
Os controles de paginação podem ser enviados com a função
<function>ldap_search</function>.
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.reflection">
<title>Reflection</title>
<para>
As chamadas para <methodname>ReflectionType::__toString</methodname> agora geram
um aviso de descontinuação. Este método foi descontinuado em favor de
<methodname>ReflectionNamedType::getName</methodname> na documentação
a partir do PHP 7.1, mas não emitiu um aviso de descontinuação por motivos técnicos.
</para>
<para>
Os métodos <literal>export()</literal> em todas as classes <classname>Reflection</classname>
foram descontinuados. Construa um objeto <classname>Reflection</classname> e
converta-o em string em seu lugar:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";
// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>
]]>
</programlisting>
</informalexample>
</para>
</sect2>
<sect2 xml:id="migration74.deprecated.socket">
<title>Socket</title>
<para>
<constant>AI_IDN_ALLOW_UNASSIGNED</constant> e
<constant>AI_IDN_USE_STD3_ASCII_RULES</constant> para
<function>socket_addrinfo_lookup</function> foram descontinuadas,
devido a uma descontinuação na própria glibc.
</para>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->