Repository: php/doc-es
Pull request #192: translate page language types
Author: login: PhilDaiguille
Created: 2025-03-26T19:01:49Z | Merged: 2025-03-30T14:02:22Z



Diff:
diff --git a/language/types/enumerations.xml b/language/types/enumerations.xml
new file mode 100644
index 000000000..b391c6d06
--- /dev/null
+++ b/language/types/enumerations.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: f4609f913fe6bf4a8b41328df9366726208b7e33 Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no Maintainer: Marqitos -->
+<sect1 xml:id="language.types.enumerations">
+ <title>Las enumeraciones</title>
+ <?phpdoc print-version-for="enumerations"?>
+
+ <sect2 xml:id="language.types.enumerations.basics">
+  <title>Las enumeraciones básicas</title>
+
+  <para>
+   Las enumeraciones constituyen una capa restrictiva sobre las clases y las constantes de clase.
+   Permiten definir un conjunto cerrado de valores posibles para un tipo.
+  </para>
+
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+enum Suit
+{
+    case Hearts;
+    case Diamonds;
+    case Clubs;
+    case Spades;
+}
+
+function do_stuff(Suit $s)
+{
+    // ...
+}
+
+do_stuff(Suit::Spades);
+?>
+]]>
+   </programlisting>
+  </informalexample>
+
+  <simpara>
+   Para una descripción completa, ver el capítulo
+   sobre <link linkend="language.enumerations">las enumeraciones</link>.
+  </simpara>
+
+ </sect2>
+
+ <sect2 xml:id="language.types.enumerations.casting">
+  <title>Conversión</title>
+
+  <para>
+   Si una <type>enum</type> es convertida en <type>object</type>, no es
+   modificada. Si una <type>enum</type> es convertida en <type>array</type>,
+   un array con una sola clave <literal>name</literal> (para las Pure enums) o
+   un array con las claves <literal>name</literal> y <literal>value</literal>
+   (para las Backed enums) es creado.  Todos los otros tipos de conversión resultarán en un error.
+  </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
+-->
diff --git a/language/types/mixed.xml b/language/types/mixed.xml
new file mode 100644
index 000000000..b9727436e
--- /dev/null
+++ b/language/types/mixed.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.mixed">
+ <title>Mixed</title>
+
+ <para>
+  El tipo <type>mixed</type> acepta todos los valores. Es equivalente al
+  <link linkend="language.types.type-system.composite.union">tipo union</link>
+  <!-- Need to improve rendering of free-standing type elements in PhD
+  <type class="union">
+   <type>object</type><type>resource</type><type>array</type><type>string</type>
+   <type>int</type><type>float</type><type>bool</type><type>null</type>
+  </type>.
+  -->
+  <literal>object|resource|array|string|float|int|bool|null</literal>.
+  Disponible a partir de PHP 8.0.0.
+ </para>
+
+ <para>
+  <type>mixed</type> es, en el lenguaje de la teoría de tipos, el tipo superior.
+  Esto significa que todos los demás tipos son subtipos de este tipo.
+ </para>
+
+</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
+-->
diff --git a/language/types/never.xml b/language/types/never.xml
new file mode 100644
index 000000000..a8ff6159b
--- /dev/null
+++ b/language/types/never.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no Maintainer: Marqitos -->
+<sect1 xml:id="language.types.never">
+ <title>Never</title>
+
+ <para>
+  <type>never</type> es únicamente un tipo de retorno que indica que la función
+  no se termina. Esto significa que llama a <function>exit</function>,
+  lanza una excepción, o es un bucle infinito.
+  Por lo tanto, no puede formar parte de una declaración de
+  <link linkend="language.types.type-system.composite.union">type union</link>
+  Disponible a partir de PHP 8.1.0.
+ </para>
+ <para>
+  <type>never</type> es, en el lenguaje de la teoría de tipos, el tipo vacío.
+  Esto significa que es el subtipo de todos los otros tipos y que puede reemplazar cualquier otro
+  tipo de retorno durante la herencia.
+ </para>
+
+</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
+-->
diff --git a/language/types/numeric-strings.xml b/language/types/numeric-strings.xml
new file mode 100644
index 000000000..324e3cc24
--- /dev/null
+++ b/language/types/numeric-strings.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: yes Maintainer: Marqitos -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Strings numéricos</title>
+ <para>
+  Un <type>string</type> PHP se considera numérico si puede ser interpretado como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de strings <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de un string que comienza como un string numérico seguido de
+  cualquier carácter.
+  </para>
+
+ <note>
+  <para>
+   Cualquier string que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Strings utilizados en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si el <type>string</type> es numérico, se resuelve en <type>int</type> si
+      el <type>string</type> es un string numérico entero y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite los strings iniciando numéricamente y el <type>string</type>
+      es uno de ellos, se resuelve en <type>int</type> si la parte inicial del
+      <type>string</type> es un string numérico entero y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+      Además, se genera un error de nivel <constant>E_WARNING</constant>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> no es numérica, se lanza una <classname>TypeError</classname>.
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.numeric-string.prior">
+  <title>Comportamiento anterior a PHP 8.0.0</title>
+  <para>
+   Antes de PHP 8.0.0, un <type>string</type> se consideraba numérico solo si tenía espacios en blanco al
+   <emphasis>inicio</emphasis> del string, si tenía espacios en blanco al
+   <emphasis>final</emphasis> del string, el string se consideraba como un string iniciando numéricamente.
+  </para>
+
+  <para>
+   Antes de PHP 8.0.0, cuando un string se utilizaba en un contexto numérico,
+   seguía los mismos pasos que los anteriores, con las siguientes diferencias:
+   <itemizedlist>
+    <listitem>
+     <simpara>
+      El uso de un string iniciando numéricamente generaba un error de tipo
+      <constant>E_NOTICE</constant> en lugar de <constant>E_WARNING</constant>.
+     </simpara>
+     </listitem>
+    <listitem>
+     <simpara>
+      Si el string no era numérico, se generaba un <constant>E_WARNING</constant>
+      y se devolvía el valor <literal>0</literal>.
+     </simpara>
+    </listitem>
+   </itemizedlist>
+   Anterior a PHP 7.1.0, ni <constant>E_NOTICE</constant>
+   ni <constant>E_WARNING</constant> se generaban.
+  </para>
+
+  <informalexample>
+   <programlisting role="php">
+<![CDATA[
+<?php
+$foo = 1 + "10.5";                // $foo es float (11.5)
+$foo = 1 + "-1.3e3";              // $foo es float (-1299)
+$foo = 1 + "bob-1.3e3";           // TypeError a partir de PHP 8.0.0, $foo era integer (1) anteriormente
+$foo = 1 + "bob3";                // TypeError a partir de PHP 8.0.0, $foo era integer (1) anteriormente
+$foo = 1 + "10 Small Pigs";       // $foo es integer (11) y se genera un E_WARNING en PHP 8.0.0, E_NOTICE anteriormente
+$foo = 4 + "10.2 Little Piggies"; // $foo es float (14.2) y se genera un E_WARNING en PHP 8.0.0, E_NOTICE anteriormente
+$foo = "10.0 pigs " + 1;          // $foo es float (11) y se genera un E_WARNING en PHP 8.0.0, E_NOTICE anteriormente
+$foo = "10.0 pigs " + 1.0;        // $foo es float (11) y se genera un E_WARNING en PHP 8.0.0, E_NOTICE anteriormente
+?>
+]]>
+   </programlisting>
+  </informalexample>
+ </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
+-->
diff --git a/language/types/relative-class-types.xml b/language/types/relative-class-types.xml
new file mode 100644
index 000000000..13dae6fec
--- /dev/null
+++ b/language/types/relative-class-types.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: yes Maintainer: Marqitos -->
+<sect1 xml:id="language.types.relative-class-types">
+ <title>Tipos de clases relativas</title>
+
+ <para>
+  Estas declaraciones de tipos solo pueden ser utilizadas dentro de las clases.
+ </para>
+
+ <sect2 xml:id="language.types.relative-class-types.self">
+  <title><type>self</type></title>
+  <para>
+   El valor debe ser un &instanceof; de la misma clase en la
+   que se utiliza la declaración de tipo.
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.relative-class-types.parent">
+  <title><type>parent</type></title>
+  <para>
+   El valor debe ser un &instanceof; de un padre de la clase
+   en la que se utiliza la declaración de tipo.
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.relative-class-types.static">
+  <title>static</title>
+  <para>
+   <type>static</type> es un tipo de retorno únicamente que exige que el
+   valor devuelto sea un &instanceof; de la misma clase en la que
+   se llama el método.
+  </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
+-->
diff --git a/language/types/singleton.xml b/language/types/singleton.xml
new file mode 100644
index 000000000..9a4c5c501
--- /dev/null
+++ b/language/types/singleton.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no Maintainer: Marqitos -->
+<sect1 xml:id="language.types.singleton">
+ <title>Tipo singleton</title>
+
+ <para>
+  Los tipos singleton son aquellos que solo aceptan un único valor.
+  PHP soporta dos tipos singleton:
+  <type>false</type> desde PHP 8.0.0 y <type>true</type>
+  desde PHP 8.2.0.
+ </para>
+
+ <warning>
+  <simpara>
+   Antes de PHP 8.2.0, el tipo <type>false</type> solo podía ser utilizado
+   en el contexto de un
+   <link linkend="language.types.type-system.composite.union">tipo union</link>.
+  </simpara>
+ </warning>
+
+ <note>
+  <simpara>
+   No es posible definir tipos singleton personalizados. Considere
+   el uso de una <link linkend="language.types.enumerations">enumeración</link> en su lugar.
+  </simpara>
+ </note>
+
+</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
+-->
diff --git a/language/types/type-system.xml b/language/types/type-system.xml
new file mode 100644
index 000000000..98a9cdbce
--- /dev/null
+++ b/language/types/type-system.xml
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: f908fff129bcd8ec1605658e06457cb04e5b2b51 Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no Maintainer: Marqitos -->
+<sect1 xml:id="language.types.type-system">
+ <title>Sistema de tipos</title>
+
+ <para>
+  PHP utiliza un sistema de tipos nominal con una fuerte relación de subtipado comportamental.
+  La relación de subtipado se verifica en la compilación, mientras que la verificación de tipos
+  se verifica dinámicamente en el momento de la ejecución.
+ </para>
+
+ <para>
+  El sistema de tipos de PHP soporta varios tipos atómicos que pueden ser compuestos juntos
+  para crear tipos más complejos. Algunos de estos tipos pueden ser escritos en forma de
+  <link linkend="language.types.declarations">declaración de tipo</link>.
+ </para>
+
+ <sect2 xml:id="language.types.type-system.atomic">
+  <title>Tipos atómicos</title>
+  <para>
+   Algunos tipos atómicos son tipos que están estrechamente integrados en el lenguaje
+   y no pueden ser reproducidos con tipos definidos por el usuario.
+  </para>
+
+  <para>
+   La lista de tipos básicos es la siguiente:
+   <itemizedlist>
+    <listitem>
+     <simpara>Tipos integrados</simpara>
+     <itemizedlist>
+      <listitem>
+       <simpara>
+        Tipos escalares:
+       </simpara>
+       <itemizedlist>
+        <listitem>
+         <simpara>tipo <type>bool</type></simpara>
+        </listitem>
+        <listitem>
+         <simpara>tipo <type>int</type></simpara>
+        </listitem>
+        <listitem>
+         <simpara>tipo <type>float</type></simpara>
+        </listitem>
+        <listitem>
+         <simpara>tipo <type>string</type></simpara>
+        </listitem>
+       </itemizedlist>
+      </listitem>
+      <listitem>
+       <simpara>tipo <type>array</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara>tipo <type>object</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara>tipo <type>resource</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara>tipo <type>never</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara>tipo <type>void</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+       <link linkend="language.types.relative-class-types">Tipos de clases relativas</link>:
+       <type>self</type>, <type>parent</type>, y <type>static</type>
+       </simpara>
+      </listitem>
+     </itemizedlist>
+    </listitem>
+    <listitem>
+     <simpara>
+      <link linkend="language.types.singleton">Tipos singleton</link>
+     </simpara>
+     <itemizedlist>
+      <listitem>
+       <simpara><type>false</type></simpara>
+      </listitem>
+      <listitem>
+       <simpara><type>true</type></simpara>
+      </listitem>
+     </itemizedlist>
+    </listitem>
+    <listitem>
+     <simpara>
+      Tipos unitarios
+     </simpara>
+     <itemizedlist>
+      <listitem>
+       <simpara><type>null</type></simpara>
+      </listitem>
+     </itemizedlist>
+    </listitem>
+    <listitem>
+     <simpara>
+      Tipos definidos por el usuario (generalmente llamados clases-tipos)
+     </simpara>
+     <itemizedlist>
+      <listitem>
+       <simpara><link linkend="language.oop5.interfaces">Interfaces</link></simpara>
+      </listitem>
+      <listitem>
+       <simpara><link linkend="language.oop5.basic.class">Clases</link></simpara>
+      </listitem>
+      <listitem>
+       <simpara><link linkend="language.types.enumerations">Enumeraciones</link></simpara>
+      </listitem>
+     </itemizedlist>
+    </listitem>
+    <listitem>
+     <simpara>tipo <type>callable</type></simpara>
+    </listitem>
+   </itemizedlist>
+  </para>
+
+  <sect3 xml:id="language.types.type-system.atomic.scalar">
+   <title>Tipos escalares</title>
+   <simpara>
+    Un valor se considera escalar si es de tipo <type>int</type>,
+    <type>float</type>, <type>string</type> o <type>bool</type>.
+   </simpara>
+  </sect3>
+
+  <sect3 xml:id="language.types.type-system.atomic.user-defined">
+   <title>Tipos definidos por el usuario</title>
+   <simpara>
+    Es posible definir tipos personalizados con
+    <link linkend="language.oop5.interfaces">interfaces</link>,
+    <link linkend="language.oop5.basic.class">clases</link> y
+    <link linkend="language.types.enumerations">enumeraciones</link>.
+    Estos se consideran tipos definidos por el usuario, o tipos de clase.
+    Por ejemplo, una clase llamada <literal>Elephant</literal> puede ser definida,
+    luego objetos de tipo <literal>Elephant</literal> pueden ser instanciados,
+    y una función puede requerir un argumento de tipo <literal>Elephant</literal>.
+    </simpara>
+   </sect3>
+  </sect2>
+
+  <sect2 xml:id="language.types.type-system.composite">
+   <title>Tipos compuestos</title>
+   <para>
+    Es posible combinar varios tipos atómicos en tipos compuestos.
+    PHP permite combinar los tipos de la siguiente manera:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <simpara>
+     Intersección de clases-tipos (interfaces y nombres de clases).
+    </simpara>
+   </listitem>
+   <listitem>
+    <simpara>
+     Unión de tipos.
+    </simpara>
+   </listitem>
+  </itemizedlist>
+
+  <sect3 xml:id="language.types.type-system.composite.intersection">
+   <title>Intersección de tipos</title>
+   <para>
+    Un tipo de intersección acepta valores que satisfacen varias
+    declaraciones de tipo de clase, en lugar de una sola.
+    Los tipos individuales que forman el tipo de intersección están unidos por el símbolo
+    <literal>&amp;</literal>. Por lo tanto, un tipo de intersección compuesto
+    por los tipos <literal>T</literal>, <literal>U</literal> y
+    <literal>V</literal> se escribe <literal>T&amp;U&amp;V</literal>.
+   </para>
+  </sect3>
+
+  <sect3 xml:id="language.types.type-system.composite.union">
+   <title>Tipos de unión</title>
+   <para>
+    Un tipo de unión acepta valores de varios tipos diferentes,
+    en lugar de uno solo.
+    Los tipos individuales que forman el tipo de unión están unidos por el símbolo
+    <literal>|</literal>. Por lo tanto, un tipo de unión compuesto
+    por los tipos <literal>T</literal>, <literal>U</literal> y
+    <literal>V</literal> se escribe <literal>T|U|V</literal>.
+    Si uno de los tipos es un tipo de intersección, debe ser puesto entre
+    paréntesis para ser escrito en <acronym>DNF</acronym>.
+    <literal>T|(X&amp;Y)</literal>.
+   </para>
+  </sect3>
+ </sect2>
+
+ <sect2 xml:id="language.types.type-system.alias">
+  <title>Alias de tipo</title>
+
+  <para>
+   PHP soporta dos alias de tipo: <type>mixed</type> y
+   <type>iterable</type> que corresponde al tipo
+   <link linkend="language.types.type-system.composite.union">tipo de unión</link>
+   de <literal>object|resource|array|string|float|int|bool|null</literal>
+   y <literal>Traversable|array</literal> respectivamente.
+  </para>
+
+  <note>
+   <simpara>
+    PHP no soporta alias de tipo definidos por el usuario.
+   </simpara>
+  </note>
+ </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
+-->
diff --git a/language/types/void.xml b/language/types/void.xml
new file mode 100644
index 000000000..02b08db09
--- /dev/null
+++ b/language/types/void.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no Maintainer: Marqitos -->
+<sect1 xml:id="language.types.void">
+ <title>Void</title>
+
+ <para>
+  <type>void</type> es una declaración de tipo de retorno únicamente, indicando que la función
+  no devuelve ningún valor, pero que la función puede terminar de todos modos.
+  Por lo tanto, no puede formar parte de una declaración de
+  <link linkend="language.types.type-system.composite.union">tipo de unión</link>
+  Disponible a partir de PHP 7.1.0.
+ </para>
+
+ <note>
+  <simpara>
+   Aunque una función tenga un tipo de retorno <type>void</type>, siempre
+   devolverá un valor, este valor siempre es &null;.
+  </simpara>
+ </note>
+
+</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
+-->


Reviews:
user: login: copilot-pull-request-reviewer[bot]
body: Copilot wasn't able to review any files in this pull request.
<details>
<summary>Files not reviewed (8)</summary>

* **language/types/enumerations.xml**: Language not supported
* **language/types/mixed.xml**: Language not supported
* **language/types/never.xml**: Language not supported
* **language/types/numeric-strings.xml**: Language not supported
* **language/types/relative-class-types.xml**: Language not supported
* **language/types/singleton.xml**: Language not supported
* **language/types/type-system.xml**: Language not supported
* **language/types/void.xml**: Language not supported
</details>


state: COMMENTED
author_association: NONE
submitted_at: 2025-03-27T10:00:33Z
user: login: Marqitos
body: A mi modo de ver, yo corregiría estas cosas.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-03-30T00:22:00Z
user: login: Marqitos
body: Lo único, que yo no traduciría `resource` ➡️ `recurso`, en `language/types/mixed.xml`.
state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-30T13:21:29Z

Review comments:
diff_hunk: @@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.mixed">
+ <title>Mixed</title>
+
+ <para>
+  El tipo <type>mixed</type> acepta todos los valores. Es equivalente al
+  <link linkend="language.types.type-system.composite.union">tipo union</link>
+  <!-- Need to improve rendering of free-standing type elements in PhD
+  <type class="union">
+   <type>object</type><type>resource</type><type>array</type><type>string</type>
+   <type>int</type><type>float</type><type>bool</type><type>null</type>
+  </type>.
+  -->
+  <literal>objeto|recurso|array|string|float|int|bool|null</literal>.
path: language/types/mixed.xml
user: login: Marqitos
body: Creo que siendo un `<literal>` y con los tipos de datos, no debería ser tradudido

`<literal>objeto|recurso|array|string|float|int|bool|null</literal>.`

➡️ `<literal>object|resource|array|string|float|int|bool|null</literal>.`
created_at: 2025-03-29T23:31:20Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
path: language/types/numeric-strings.xml
user: login: Marqitos
body: Cadena no se debería traducir, y además es redundante

`Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como` ...

➡️ `Un <type>string</type> PHP se considera numérico si puede ser interpretado como`
created_at: 2025-03-29T23:34:47Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
path: language/types/numeric-strings.xml
user: login: Marqitos
body: Cadena no se traduce:

`<title>Cadenas numéricas</title>`

➡️ `<title>Strings numéricos</title>`
created_at: 2025-03-29T23:36:00Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
path: language/types/numeric-strings.xml
user: login: Marqitos
body: ```xml
<para>
PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
cualquier carácter.
</para>
```

➡️
```xml
<para>
PHP también dispone de un concepto de strings <emphasis>iniciando</emphasis> numéricamente.
Se trata simplemente de un string que comienza como un string numérico seguida de
cualquier carácter.
</para>
```
 

created_at: 2025-03-29T23:41:00Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `Cualquier cadena que contenga la letra <literal>E</literal>` ...

➡️ `Cualquier string que contenga la letra <literal>E</literal>` ...
created_at: 2025-03-29T23:41:38Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `<title>Cadenas de caracteres utilizadas en contextos numéricos</title>`

➡️ `<title>Strings utilizados en contextos numéricos</title>`
created_at: 2025-03-29T23:43:05Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `<title>Cadenas de caracteres utilizadas en contextos numéricos</title>`

➡️ `<title>Strings utilizados en contextos numéricos</title>`
created_at: 2025-03-29T23:44:15Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `la <type>string</type> es una cadena numérica entera y` ...

➡️ `el <type>string</type> es un string numérico entero y` ...
created_at: 2025-03-29T23:48:20Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
+      es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
+      <type>string</type> es una cadena numérica entera y entra dentro de los
path: language/types/numeric-strings.xml
user: login: Marqitos
body: ```xml
Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
<type>string</type> es una cadena numérica entera y entra dentro de los
```

➡️
```xml
Si el contexto permite los strings iniciando numéricamente y el <type>string</type>
es uno de ellos, se resuelve en <type>int</type> si la parte inicial del
<type>string</type> es un string numérico entero y entra dentro de los
```
created_at: 2025-03-29T23:53:56Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
+      es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
+      <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+      Además, se genera un error de nivel <constant>E_WARNING</constant>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> no es numérica, se lanza una <classname>TypeError</classname>.
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.numeric-string.prior">
+  <title>Comportamiento anterior a PHP 8.0.0</title>
+  <para>
+   Anterior a PHP 8.0.0, una <type>string</type> se consideraba numérica solo si tenía espacios en blanco al
+   <emphasis>inicio</emphasis> de la cadena, si tenía espacios en blanco al
+   <emphasis>final</emphasis> de la cadena, la cadena se consideraba como una cadena iniciando numéricamente.
path: language/types/numeric-strings.xml
user: login: Marqitos
body: ```xml
Anterior a PHP 8.0.0, una <type>string</type> se consideraba numérica solo si tenía espacios en blanco al
<emphasis>inicio</emphasis> de la cadena, si tenía espacios en blanco al
<emphasis>final</emphasis> de la cadena, la cadena se consideraba como una cadena iniciando numéricamente.
```

➡️
```xml
Antes de PHP 8.0.0, un <type>string</type> se consideraba numérico solo si tenía espacios en blanco al
<emphasis>inicio</emphasis> del string, si tenía espacios en blanco al
<emphasis>final</emphasis> del string, el string se consideraba como un string iniciando numéricamente.
```

created_at: 2025-03-29T23:56:48Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
+      es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
+      <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+      Además, se genera un error de nivel <constant>E_WARNING</constant>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> no es numérica, se lanza una <classname>TypeError</classname>.
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.numeric-string.prior">
+  <title>Comportamiento anterior a PHP 8.0.0</title>
+  <para>
+   Anterior a PHP 8.0.0, una <type>string</type> se consideraba numérica solo si tenía espacios en blanco al
+   <emphasis>inicio</emphasis> de la cadena, si tenía espacios en blanco al
+   <emphasis>final</emphasis> de la cadena, la cadena se consideraba como una cadena iniciando numéricamente.
+  </para>
+
+  <para>
+   Anterior a PHP 8.0.0, cuando una cadena de caracteres se utilizaba en un contexto numérico,
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `Anterior a PHP 8.0.0, cuando una cadena de caracteres se utilizaba en un contexto numérico,`

➡️ `Antes de PHP 8.0.0, cuando un string se utilizaba en un contexto numérico,`
created_at: 2025-03-29T23:57:34Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
+      es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
+      <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+      Además, se genera un error de nivel <constant>E_WARNING</constant>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> no es numérica, se lanza una <classname>TypeError</classname>.
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.numeric-string.prior">
+  <title>Comportamiento anterior a PHP 8.0.0</title>
+  <para>
+   Anterior a PHP 8.0.0, una <type>string</type> se consideraba numérica solo si tenía espacios en blanco al
+   <emphasis>inicio</emphasis> de la cadena, si tenía espacios en blanco al
+   <emphasis>final</emphasis> de la cadena, la cadena se consideraba como una cadena iniciando numéricamente.
+  </para>
+
+  <para>
+   Anterior a PHP 8.0.0, cuando una cadena de caracteres se utilizaba en un contexto numérico,
+   seguía los mismos pasos que los anteriores, con las siguientes diferencias:
+   <itemizedlist>
+    <listitem>
+     <simpara>
+      El uso de una cadena de caracteres iniciando numéricamente generaba un error de tipo
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `El uso de una cadena de caracteres iniciando numéricamente generaba un error de tipo`

➡️ `El uso de un string iniciando numéricamente generaba un error de tipo`
created_at: 2025-03-29T23:58:17Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 7ba2406e555a240338d63f72d9ac54a46e0bee5d Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.numeric-strings" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Cadenas numéricas</title>
+ <para>
+  Una cadena de caracteres PHP <type>string</type> se considera numérica si puede ser interpretada como
+  un <type>int</type> o un <type>float</type>.
+ </para>
+
+ <para>
+  Formalmente a partir de PHP 8.0.0:
+ </para>
+
+ <informalexample>
+  <programlisting>
+   <![CDATA[
+WHITESPACES      \s*
+LNUM             [0-9]+
+DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
+EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
+INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
+FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
+NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})
+]]>
+  </programlisting>
+ </informalexample>
+
+ <para>
+  PHP también dispone de un concepto de cadenas <emphasis>iniciando</emphasis> numéricamente.
+  Se trata simplemente de una cadena que comienza como una cadena numérica seguida de
+  cualquier carácter.
+ </para>
+
+ <note>
+  <para>
+   Cualquier cadena que contenga la letra <literal>E</literal> (insensible a mayúsculas y minúsculas)
+   delimitada por números será considerada como un número expresado en notación científica.
+   Esto puede producir resultados inesperados.
+   <programlisting role="php">
+<![CDATA[
+<?php
+var_dump("0D1" == "000"); // false, "0D1" no es notación científica
+var_dump("0E1" == "000"); // true, "0E1" es 0 * (10 ^ 1), o 0
+var_dump("2E1" == "020"); // true, "2E1" es 2 * (10 ^ 1), o 20
+?>
+]]>
+   </programlisting>
+  </para>
+ </note>
+
+ <sect2 xml:id="language.types.numeric-string.conversion">
+  <title>Cadenas de caracteres utilizadas en contextos numéricos</title>
+  <para>
+   Cuando una <type>string</type> debe ser evaluada como un número (por ejemplo, operaciones
+   aritméticas, declaración de tipo <type>int</type>, etc.),
+   se siguen los siguientes pasos para determinar el resultado:
+   <orderedlist>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> es numérica, se resuelve en <type>int</type> si
+      la <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si el contexto permite las cadenas iniciando numéricamente y la <type>string</type>
+      es una de ellas, se resuelve en <type>int</type> si la parte inicial de la cadena
+      <type>string</type> es una cadena numérica entera y entra dentro de los
+      límites del tipo <type>int</type> (tales como definidas por
+      <constant>PHP_INT_MAX</constant>), de lo contrario se resuelve en un
+      <type>float</type>.
+      Además, se genera un error de nivel <constant>E_WARNING</constant>.
+     </simpara>
+    </listitem>
+    <listitem>
+     <simpara>
+      Si la <type>string</type> no es numérica, se lanza una <classname>TypeError</classname>.
+     </simpara>
+    </listitem>
+   </orderedlist>
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.numeric-string.prior">
+  <title>Comportamiento anterior a PHP 8.0.0</title>
+  <para>
+   Anterior a PHP 8.0.0, una <type>string</type> se consideraba numérica solo si tenía espacios en blanco al
+   <emphasis>inicio</emphasis> de la cadena, si tenía espacios en blanco al
+   <emphasis>final</emphasis> de la cadena, la cadena se consideraba como una cadena iniciando numéricamente.
+  </para>
+
+  <para>
+   Anterior a PHP 8.0.0, cuando una cadena de caracteres se utilizaba en un contexto numérico,
+   seguía los mismos pasos que los anteriores, con las siguientes diferencias:
+   <itemizedlist>
+    <listitem>
+     <simpara>
+      El uso de una cadena de caracteres iniciando numéricamente generaba un error de tipo
+      <constant>E_NOTICE</constant> en lugar de <constant>E_WARNING</constant>.
+     </simpara>
+     </listitem>
+    <listitem>
+     <simpara>
+      Si la cadena de caracteres no era numérica, se generaba un <constant>E_WARNING</constant>
path: language/types/numeric-strings.xml
user: login: Marqitos
body: `Si la cadena de caracteres no era numérica,` ...

➡️ `Si el string no era numérico,` ...
created_at: 2025-03-29T23:58:59Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.relative-class-types">
+ <title>Tipos de clases relativas</title>
+
+ <para>
+  Estas declaraciones de tipos solo pueden ser utilizadas dentro de las clases.
+ </para>
+
+ <sect2 xml:id="language.types.relative-class-types.self">
+  <title><type>self</type></title>
+  <para>
+   El valor debe ser una instancia de la misma clase en la que se utiliza la declaración de tipo.
path: language/types/relative-class-types.xml
user: login: Marqitos
body: Según la documentación en inglés

`El valor debe ser una instancia de la misma clase en la que se utiliza la declaración de tipo.`

EN
```xml
The value must be an &instanceof; the same class as the one
in which the type declaration is used.
```

➡️
```xml
El valor debe ser un &instanceof; de la misma clase en la
que se utiliza la declaración de tipo.
```


created_at: 2025-03-30T00:06:06Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.relative-class-types">
+ <title>Tipos de clases relativas</title>
+
+ <para>
+  Estas declaraciones de tipos solo pueden ser utilizadas dentro de las clases.
+ </para>
+
+ <sect2 xml:id="language.types.relative-class-types.self">
+  <title><type>self</type></title>
+  <para>
+   El valor debe ser una instancia de la misma clase en la que se utiliza la declaración de tipo.
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.relative-class-types.parent">
+  <title><type>parent</type></title>
+  <para>
+   El valor debe ser una instancia de un padre de la clase en la que se utiliza la declaración de tipo.
path: language/types/relative-class-types.xml
user: login: Marqitos
body: Según la documentación en inglés

`El valor debe ser una instancia de un padre de la clase en la que se utiliza la declaración de tipo.`

EN
```xml
The value must be an &instanceof; a parent of the class
in which the type declaration is used.
```

➡️
```xml
El valor debe ser un &instanceof; de un padre de la clase
en la que se utiliza la declaración de tipo.
```
created_at: 2025-03-30T00:14:53Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.relative-class-types">
+ <title>Tipos de clases relativas</title>
+
+ <para>
+  Estas declaraciones de tipos solo pueden ser utilizadas dentro de las clases.
+ </para>
+
+ <sect2 xml:id="language.types.relative-class-types.self">
+  <title><type>self</type></title>
+  <para>
+   El valor debe ser una instancia de la misma clase en la que se utiliza la declaración de tipo.
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.relative-class-types.parent">
+  <title><type>parent</type></title>
+  <para>
+   El valor debe ser una instancia de un padre de la clase en la que se utiliza la declaración de tipo.
+  </para>
+ </sect2>
+
+ <sect2 xml:id="language.types.relative-class-types.static">
+  <title>static</title>
+  <para>
+   <type>static</type> es un tipo de retorno únicamente que exige que el valor devuelto sea una instancia de la misma clase en la que se llama el método.
path: language/types/relative-class-types.xml
user: login: Marqitos
body: Según la documentación en inglés

`<type>static</type> es un tipo de retorno únicamente que exige que el valor devuelto sea una instancia de la misma clase en la que se llama el método.`

EN
```xml
<type>static</type> is a return-only type which requires that the
value returned must be an &instanceof; the same class as the one
the method is called in.
```

➡️
```xml
<type>static</type> es un tipo de retorno únicamente que exige que el
valor devuelto sea un &instanceof; de la misma clase en la que
se llama el método.
```


created_at: 2025-03-30T00:20:30Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- EN-Revision: 161dde4fe721309398dd324edbf02aec409f127b Maintainer: PhilDaiguille Status: ready -->
+<!-- Reviewed: no -->
+<sect1 xml:id="language.types.mixed">
+ <title>Mixed</title>
+
+ <para>
+  El tipo <type>mixed</type> acepta todos los valores. Es equivalente al
+  <link linkend="language.types.type-system.composite.union">tipo union</link>
+  <!-- Need to improve rendering of free-standing type elements in PhD
+  <type class="union">
+   <type>object</type><type>resource</type><type>array</type><type>string</type>
+   <type>int</type><type>float</type><type>bool</type><type>null</type>
+  </type>.
+  -->
+  <literal>object|recurso|array|string|float|int|bool|null</literal>.
path: language/types/mixed.xml
user: login: Marqitos
body: Yo no traduciría `resource`

`<literal>object|resource|array|string|float|int|bool|null</literal>.`
created_at: 2025-03-30T13:09:08Z
author_association: MEMBER

PR comments:
user: login: PhilDaiguille
created_at: 2025-03-27T11:30:20Z
body: Ahah no es genial el copiloto
author_association: CONTRIBUTOR
user: login: Marqitos
created_at: 2025-03-27T12:16:58Z
body: Ya, ayuda un poco en alguna cosas, pero falla en otras.
Yo lo tengo activado cuando estoy traduciendo, y le verdad que a veces me sugiere cosas bien redactadas, mejor que un traductor normal.
author_association: MEMBER