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

contributors($setup);

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

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

  <div class="sect3" id="migration82.deprecated.core.dynamic-properties">
   <h4 class="title">Uso de propiedades dinámicas</h4>

   <p class="para">
    La creación de propiedades dinámicas es obsoleta, a menos que la clase lo permita utilizando el atributo <code class="code">#[\AllowDynamicProperties]</code>.
    <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span> permite las propiedades dinámicas.
    El uso de los métodos mágicos <a href="language.oop5.overloading.php#object.get" class="link">__get()</a>/<a href="language.oop5.overloading.php#object.set" class="link">__set()</a> no se ve afectado por este cambio.
    La advertencia de obsolescencia de las propiedades dinámicas puede ser abordada:

    <ul class="simplelist">
     <li>Declarando la propiedad (preferible).</li>
     <li>
      Añadiendo el atributo <code class="code">#[\AllowDynamicProperties]</code> a la clase
      (que se aplica también a todas las clases hijas).
     </li>
     <li>
      Utilizando un <span class="classname"><a href="class.weakmap.php" class="classname">WeakMap</a></span> si se deben asociar datos adicionales a un objeto del cual no se es propietario.
     </li>
    </ul>
   </p>
  </div>

  <div class="sect3" id="migration82.deprecated.core.relative-callables">
   <h4 class="title">Callables relativos</h4>

   <p class="para">
    Los callables que no son aceptados por la sintaxis <code class="code">$callable()</code>
    (pero que son aceptados por <span class="function"><a href="function.call-user-func.php" class="function">call_user_func()</a></span>) son obsoletos.

    En particular:
    <ul class="simplelist">
     <li><code class="code">&quot;self::method&quot;</code></li>
     <li><code class="code">&quot;parent::method&quot;</code></li>
     <li><code class="code">&quot;static::method&quot;</code></li>
     <li><code class="code">[&quot;self&quot;, &quot;method&quot;]</code></li>
     <li><code class="code">[&quot;parent&quot;, &quot;method&quot;]</code></li>
     <li><code class="code">[&quot;static&quot;, &quot;method&quot;]</code></li>
     <li><code class="code">[&quot;Foo&quot;, &quot;Bar::method&quot;]</code></li>
     <li><code class="code">[new Foo, &quot;Bar::method&quot;]</code></li>
    </ul>

    Esto no afecta a los callables de método normales como
    <code class="code">&quot;A::method&quot;</code> o <code class="code">[&quot;A&quot;, &quot;method&quot;]</code>.
   </p>
   
   
  </div>

  <div class="sect3" id="migration82.deprecated.core.dollar-brace-interpolation">
   <h4 class="title">Interpolación de estilo <code class="code">&quot;${var}&quot;</code> y <code class="code">&quot;${expr}&quot;</code>.</h4>

   <p class="para">
    Los estilos de interpolación de cadena <code class="code">&quot;${var}&quot;</code> y <code class="code">&quot;${expr}&quot;</code>
    son obsoletos.
    Utilice respectivamente <code class="code">&quot;$var&quot;/&quot;{$var}&quot;</code> y <code class="code">&quot;{${expr}}&quot;</code>.
    
   </p>
  </div>

 </div>

 <div class="sect2" id="migration82.deprecated.mbstring">
  <h3 class="title">MBString</h3>

  <p class="para">
   El uso de los formatos <code class="literal">QPrint</code>, <code class="literal">Base64</code>,
   <code class="literal">Uuencode</code> y <code class="literal">HTML-ENTITIES</code>
   es obsoleto para todas las funciones MBString.

   A diferencia de todos los otros encodings de texto soportados por MBString,
   estos no codifican una secuencia de puntos de código Unicode, sino más bien una secuencia de bytes en bruto.
   Los valores de retorno de la mayoría de las funciones MBString no son claros
   cuando se especifica uno de estos no-encodings.
   Además, PHP tiene implementaciones distintas para cada uno de ellos;
   por ejemplo, los datos UUencoded pueden ser manejados utilizando
   <span class="function"><a href="function.convert-uuencode.php" class="function">convert_uuencode()</a></span>/<span class="function"><a href="function.convert-uudecode.php" class="function">convert_uudecode()</a></span>.
  </p>
 </div>

 <div class="sect2" id="migration82.deprecated.spl">
  <h3 class="title">SPL</h3>

  <p class="para">
   El método interno <span class="methodname"><strong>SplFileInfo::_bad_state_ex()</strong></span>
   ha sido declarado obsoleto.
  </p>
 </div>

 <div class="sect2" id="migration82.deprecated.standard">
  <h3 class="title">Standard</h3>

  <p class="para">
  <span class="function"><a href="function.utf8-encode.php" class="function">utf8_encode()</a></span> y <span class="function"><a href="function.utf8-decode.php" class="function">utf8_decode()</a></span>
   han sido declaradas obsoletas.
  </p>
 </div>

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