<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/reserved.attributes.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'class.returntypewillchange.php',
    1 => 'ReturnTypeWillChange',
    2 => 'El atributo ReturnTypeWillChange',
  ),
  'up' => 
  array (
    0 => 'reserved.attributes.php',
    1 => 'Atributos predefinidos',
  ),
  'prev' => 
  array (
    0 => 'override.construct.php',
    1 => 'Override::__construct',
  ),
  'next' => 
  array (
    0 => 'returntypewillchange.construct.php',
    1 => 'ReturnTypeWillChange::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'language/predefined/attributes/returntypewillchange.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.returntypewillchange.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.returntypewillchange" class="reference">
 <h1 class="title">El atributo ReturnTypeWillChange</h1>
 

 <div class="partintro"><p class="verinfo">(PHP 8 &gt;= 8.1.0)</p>

  <div class="section" id="returntypewillchange.intro">
   <h2 class="title">Introducción</h2>
   <p class="simpara">
    A partir de PHP 8.1.0, comenzó una fase tentativa de transición hacia las
    declaraciones de tipo de retorno para los métodos de las clases internas.
   </p>

   <p class="simpara">
    La mayoría de los métodos internos no finales requieren ahora que los métodos sobrescritos declaren
    un tipo de retorno compatible. En caso contrario, se emite un aviso de deprecación durante la
    validación de herencia, advirtiendo de que la firma infringe las reglas de covarianza.
   </p>

   <p class="simpara">
    En una versión futura de PHP, la comprobación de las firmas de los métodos será estricta,
    y las discrepancias provocarán un error fatal.
   </p>

   <p class="simpara">
    En caso de que el tipo de retorno no pueda declararse para un método sobrescrito debido a
    preocupaciones de compatibilidad entre versiones de PHP, o cuando el método sobrescrito declare
    un tipo de retorno incompatible, se puede añadir un atributo
    <code class="code">#[\ReturnTypeWillChange]</code> para silenciar el aviso de deprecación.
   </p>

   <div class="warning"><strong class="warning">Advertencia</strong>
    <p class="simpara">
     Al sobrescribir métodos definidos en clases definidas por el usuario, los tipos de retorno se
     comprueban de forma estricta. Se emite un error fatal en caso de discrepancia, incluso si el
     método sobrescrito está marcado con el atributo.
    </p>

    <p class="simpara">
     El atributo <span class="classname"><strong class="classname">ReturnTypeWillChange</strong></span> suprime los avisos de deprecación
     <em>únicamente</em> durante la fase de tipo de retorno tentativo.
     Una vez impuesta la comprobación estricta de tipos, el atributo dejará de funcionar y una
     discrepancia en la firma del método sobrescrito de una clase interna provocará un error fatal.
    </p>
   </div>
  </div>

  <div class="section" id="returntypewillchange.synopsis">
   <h2 class="title">Sinopsis de la clase</h2>

   <div class="classsynopsis"><div class="classsynopsisinfo">
    
     <span class="attribute">#[<a href="class.attribute.php">\Attribute</a>]</span><br>
     <span class="modifier">final</span>
     <span class="modifier">class</span> <strong class="classname"><strong class="classname">ReturnTypeWillChange</strong></strong>
     {</div>

    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Métodos */</div>
    <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="returntypewillchange.construct.php" class="methodname">__construct</a></span>()</div>

   }</div>

  </div>

  <div class="section" id="returntypewillchange.seealso">
   <h2 class="title">Véase también</h2>
   <p class="para"><a href="language.attributes.php" class="link">Visión general de los atributos</a></p>
  </div>

 </div>

 




 


<h2>Tabla de contenidos</h2><ul class="chunklist chunklist_reference"><li><a href="returntypewillchange.construct.php">ReturnTypeWillChange::__construct</a> — Construye una nueva instancia del atributo ReturnTypeWillChange</li></ul>
</div>
<?php manual_footer($setup); ?>