<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration74.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'migration74.deprecated.php',
    1 => 'Funcionalidades obsoletas',
    2 => 'Funcionalidades obsoletas',
  ),
  'up' => 
  array (
    0 => 'migration74.php',
    1 => 'Migraci&oacute;n de PHP 7.3.x a PHP 7.4.x',
  ),
  'prev' => 
  array (
    0 => 'migration74.incompatible.php',
    1 => 'Cambios incompatibles con versiones anteriores',
  ),
  'next' => 
  array (
    0 => 'migration74.removed-extensions.php',
    1 => 'Extensiones eliminadas',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'appendices/migration74/deprecated.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration74.deprecated" class="sect1">
 <h2 class="title">Funcionalidades obsoletas</h2>

 <div class="sect2" id="migration74.deprecated.core">
  <h3 class="title">Núcleo de PHP</h3>

  <div class="sect3" id="migration74.deprecated.core.nested-ternary">
   <h4 class="title">Operadores ternarios anidados sin paréntesis explícitos</h4>

   <p class="para">
    Los operadores ternarios anidados deben utilizar explícitamente paréntesis para dictar el orden de las operaciones. Anteriormente, cuando se utilizaba sin paréntesis, la asociatividad a la izquierda no resultaba en el comportamiento esperado para la mayoría de los casos.
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />1 </span><span style="color: #007700">? </span><span style="color: #0000BB">2 </span><span style="color: #007700">: </span><span style="color: #0000BB">3 </span><span style="color: #007700">? </span><span style="color: #0000BB">4 </span><span style="color: #007700">: </span><span style="color: #0000BB">5</span><span style="color: #007700">;   </span><span style="color: #FF8000">// obsoleto<br /></span><span style="color: #007700">(</span><span style="color: #0000BB">1 </span><span style="color: #007700">? </span><span style="color: #0000BB">2 </span><span style="color: #007700">: </span><span style="color: #0000BB">3</span><span style="color: #007700">) ? </span><span style="color: #0000BB">4 </span><span style="color: #007700">: </span><span style="color: #0000BB">5</span><span style="color: #007700">; </span><span style="color: #FF8000">// ok<br /></span><span style="color: #0000BB">1 </span><span style="color: #007700">? </span><span style="color: #0000BB">2 </span><span style="color: #007700">: (</span><span style="color: #0000BB">3 </span><span style="color: #007700">? </span><span style="color: #0000BB">4 </span><span style="color: #007700">: </span><span style="color: #0000BB">5</span><span style="color: #007700">); </span><span style="color: #FF8000">// ok<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    Los paréntesis no son <em>necesarios</em> al anidar en el operando del medio ya que esto siempre es sin ambigüedad y no se ve afectado por la asociatividad:
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">1 ? 2 ? 3 : 4 : 5 // ok</span></code></div>
     </div>

    </div>
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.array-string-access-curly-brace">
   <h4 class="title">Acceso a la posición de array y string utilizando llaves</h4>

   <p class="para">
    La sintaxis para acceder a la posición de <span class="type"><a href="language.types.array.php" class="type array">array</a></span> y <span class="type"><a href="language.types.string.php" class="type string">string</a></span> con llaves es obsoleta. Utilizar <code class="literal">$var[$idx]</code> en lugar de <code class="literal">$var{$idx}</code>.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.real">
   <h4 class="title">El transtipado (real) y la función <span class="function"><a href="function.is-real.php" class="function">is_real()</a></span></h4>

   <p class="para">
    El transtipado <code class="literal">(real)</code> es obsoleto, utilizar <code class="literal">(float)</code> en su lugar.
   </p>
   <p class="para">
    La función <span class="function"><a href="function.is-real.php" class="function">is_real()</a></span> también es obsoleta, utilizar <span class="function"><a href="function.is-float.php" class="function">is_float()</a></span> en su lugar.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.unbind-this">
   <h4 class="title">Desligar <code class="literal">$this</code> cuando <code class="literal">$this</code> es utilizado</h4>

   <p class="para">
    Desligar <code class="literal">$this</code> de una clausura no estática que utiliza <code class="literal">$this</code> es obsoleto.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.parent">
   <h4 class="title">Palabra clave <code class="literal">parent</code> sin clase padre</h4>

   <p class="para">
    El uso de <code class="literal">parent</code> dentro de una clase sin padre es obsoleto, y emitirá un error en la compilación en el futuro. Actualmente, solo se generará un error si/cuando un padre es accedido durante la ejecución.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.allow-url-include">
   <h4 class="title">Opción INI allow_url_include</h4>

   <p class="para">
    La directiva INI <a href="filesystem.configuration.php#ini.allow-url-include" class="link">allow_url_include</a> es obsoleta. Activarla generará un aviso de obsolescencia al inicio.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.invalid-base-characters">
   <h4 class="title">Caracteres inválidos en las funciones de conversión de base</h4>

   <p class="para">
    Pasar caracteres inválidos a <span class="function"><a href="function.base-convert.php" class="function">base_convert()</a></span>, <span class="function"><a href="function.bindec.php" class="function">bindec()</a></span>, <span class="function"><a href="function.octdec.php" class="function">octdec()</a></span> y <span class="function"><a href="function.hexdec.php" class="function">hexdec()</a></span> generará ahora un aviso de obsolescencia. El resultado siempre se calculará como si los caracteres inválidos no existieran. Los caracteres de espaciado en blanco, así como los prefijos de tipo 0x (en función de la base) continúan siendo aceptados.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.array-key-exists-objects">
   <h4 class="title">El uso de <span class="function"><a href="function.array-key-exists.php" class="function">array_key_exists()</a></span> en objetos</h4>

   <p class="para">
    El uso de <span class="function"><a href="function.array-key-exists.php" class="function">array_key_exists()</a></span> en objetos es obsoleto. En su lugar, <span class="function"><a href="function.isset.php" class="function">isset()</a></span> o <span class="function"><a href="function.property-exists.php" class="function">property_exists()</a></span> deberían ser utilizados.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.magic-quotes-functions">
   <h4 class="title">Funciones de comillas mágicas</h4>

   <p class="para">
    Las funciones <span class="function"><a href="function.get-magic-quotes-gpc.php" class="function">get_magic_quotes_gpc()</a></span> y <span class="function"><a href="function.get-magic-quotes-runtime.php" class="function">get_magic_quotes_runtime()</a></span> son obsoletas. Siempre devuelven <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.hebrevc">
   <h4 class="title">Función <span class="function"><a href="function.hebrevc.php" class="function">hebrevc()</a></span></h4>

   <p class="para">
    La función <span class="function"><a href="function.hebrevc.php" class="function">hebrevc()</a></span> es obsoleta. Puede ser reemplazada por <code class="literal">nl2br(hebrev($str))</code> o, preferiblemente, utilizando el soporte Unicode RTL (Derecha a Izquierda).
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.convert-cyr-string">
   <h4 class="title">Función <span class="function"><a href="function.convert-cyr-string.php" class="function">convert_cyr_string()</a></span></h4>

   <p class="para">
    La función <span class="function"><a href="function.convert-cyr-string.php" class="function">convert_cyr_string()</a></span> es obsoleta. Puede ser reemplazada por una de <span class="function"><strong>mb_convert_string()</strong></span>, <span class="function"><a href="function.iconv.php" class="function">iconv()</a></span> o <span class="classname"><a href="class.uconverter.php" class="classname">UConverter</a></span>.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.money-format">
   <h4 class="title">Función <span class="function"><a href="function.money-format.php" class="function">money_format()</a></span></h4>

   <p class="para">
    La función <span class="function"><a href="function.money-format.php" class="function">money_format()</a></span> es obsoleta. Puede ser reemplazada por la funcionalidad intl <span class="classname"><a href="class.numberformatter.php" class="classname">NumberFormatter</a></span>.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.ezmlm-hash">
   <h4 class="title">Función <span class="function"><a href="function.ezmlm-hash.php" class="function">ezmlm_hash()</a></span></h4>

   <p class="para">
    La función <span class="function"><a href="function.ezmlm-hash.php" class="function">ezmlm_hash()</a></span> es obsoleta.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.restore-include-path">
   <h4 class="title">Función <span class="function"><a href="function.restore-include-path.php" class="function">restore_include_path()</a></span></h4>

   <p class="para">
    La función <span class="function"><a href="function.restore-include-path.php" class="function">restore_include_path()</a></span> es obsoleta. Puede ser reemplazada por <code class="literal">ini_restore(&#039;include_path&#039;)</code>.
   </p>
  </div>

  <div class="sect3" id="migration74.deprecated.core.implode-reverse-parameters">
   <h4 class="title">Implode con el orden de parámetros histórico</h4>

   <p class="para">
    Pasar los parámetros a <span class="function"><a href="function.implode.php" class="function">implode()</a></span> en el orden inverso es obsoleto, utilizar <code class="literal">implode($glue, $parts)</code> en lugar de <code class="literal">implode($parts, $glue)</code>.
   </p>
  </div>

 </div>

 <div class="sect2" id="migration74.deprecated.com">
  <h3 class="title">COM</h3>

  <p class="para">
   La importación de bibliotecas de tipo con el registro de constantes no sensibles a mayúsculas y minúsculas ha sido declarada obsoleta.
  </p>
 </div>

 <div class="sect2" id="migration74.deprecated.filter">
  <h3 class="title">Filtro</h3>

  <p class="para">
   <strong><code><a href="filter.constants.php#constant.filter-sanitize-magic-quotes">FILTER_SANITIZE_MAGIC_QUOTES</a></code></strong> es obsoleto, utilizar <strong><code><a href="filter.constants.php#constant.filter-sanitize-add-slashes">FILTER_SANITIZE_ADD_SLASHES</a></code></strong> en su lugar.
  </p>
 </div>

 <div class="sect2" id="migration74.deprecated.mbstring">
  <h3 class="title">Cadenas Multi-octetos</h3>

  <p class="para">
   Pasar un patrón que no es una <span class="type"><a href="language.types.string.php" class="type string">string</a></span> a <span class="function"><a href="function.mb-ereg-replace.php" class="function">mb_ereg_replace()</a></span> es obsoleto. Actualmente, los patrones que no son <span class="type"><a href="language.types.string.php" class="type string">string</a></span> son interpretados como punto de código ASCII. En PHP 8, el patrón será interpretado como una <span class="type"><a href="language.types.string.php" class="type string">string</a></span> en su lugar.
  </p>
  <p class="para">
   Pasar la codificación como tercer parámetro a <span class="function"><a href="function.mb-strrpos.php" class="function">mb_strrpos()</a></span> es obsoleto. En su lugar, pasar una posición de 0, y la codificación como cuarto parámetro.
  </p>
 </div>

 <div class="sect2" id="migration74.deprecated.ldap">
  <h3 class="title">Protocolo Ligero de Acceso a Directorios (LDAP)</h3>

  <p class="para">
   <span class="function"><a href="function.ldap-control-paged-result-response.php" class="function">ldap_control_paged_result_response()</a></span> y <span class="function"><a href="function.ldap-control-paged-result.php" class="function">ldap_control_paged_result()</a></span> son obsoletos. Los controles de paginación pueden ser enviados con <span class="function"><a href="function.ldap-search.php" class="function">ldap_search()</a></span> en su lugar.
  </p>
 </div>

 <div class="sect2" id="migration74.deprecated.reflection">
  <h3 class="title">Reflection</h3>

  <p class="para">
   La llamada a <span class="methodname"><a href="reflectiontype.tostring.php" class="methodname">ReflectionType::__toString()</a></span> genera ahora un aviso de obsolescencia. Este método fue deprecado en favor de <span class="methodname"><a href="reflectionnamedtype.getname.php" class="methodname">ReflectionNamedType::getName()</a></span> en la documentación a partir de PHP 7.1, pero no lanzaba un aviso de obsolescencia por razones técnicas.
  </p>
  <p class="para">
   Los métodos <code class="literal">export()</code> en todas las clases <span class="classname"><a href="class.reflection.php" class="classname">Reflection</a></span> son obsoletos. Crear un objeto <span class="classname"><a href="class.reflection.php" class="classname">Reflection</a></span> y convertirlo en <span class="type"><a href="language.types.string.php" class="type string">string</a></span> en su lugar:
   <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// ReflectionClass::export(Foo::class, false) es:<br /></span><span style="color: #007700">echo new </span><span style="color: #0000BB">ReflectionClass</span><span style="color: #007700">(</span><span style="color: #0000BB">Foo</span><span style="color: #007700">::class), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// $str = ReflectionClass::export(Foo::class, true) es:<br /></span><span style="color: #0000BB">$str </span><span style="color: #007700">= (string) new </span><span style="color: #0000BB">ReflectionClass</span><span style="color: #007700">(</span><span style="color: #0000BB">Foo</span><span style="color: #007700">::class);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
  </p>
 </div>

 <div class="sect2" id="migration74.deprecated.socket">
  <h3 class="title">Socket</h3>

  <p class="para">
   Los flags <strong><code>AI_IDN_ALLOW_UNASSIGNED</code></strong> y <strong><code>AI_IDN_USE_STD3_ASCII_RULES</code></strong> para <span class="function"><a href="function.socket-addrinfo-lookup.php" class="function">socket_addrinfo_lookup()</a></span> son obsoletos, debido a una deprecación en glibc.
  </p>
 </div>

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