From c53a7bb2e30549c5686d9a4e67340d95e004dab6 Mon Sep 17 00:00:00 2001 From: Philippe DELENTE <80407535+PhilDaiguille@users.noreply.github.com> Date: Thu, 28 Aug 2025 19:59:08 +0200 Subject: [PATCH] feat(translation): add and revision doc EN (#271) --- appendices/examples.xml | 39 ++ install/pecl.xml | 175 +++++---- install/pie.xml | 37 ++ language-snippets.ent | 6 +- language/control-structures/foreach.xml | 110 +++--- language/enumerations.xml | 343 +++++++++--------- language/types/array.xml | 286 ++++++++------- reference/apcu/functions/apcu-entry.xml | 27 +- reference/array/functions/extract.xml | 147 ++++---- reference/array/functions/list.xml | 74 ++-- reference/dio/functions/dio-tcsetattr.xml | 55 ++- .../functions/enchant-broker-request-dict.xml | 39 +- .../enchant/functions/enchant-dict-add.xml | 15 +- .../functions/enchant-dict-describe.xml | 41 +-- .../functions/enchant-dict-suggest.xml | 25 +- reference/filter/constants.xml | 244 ++++++------- reference/hash/book.xml | 65 ++-- reference/hash/functions/hash-hkdf.xml | 60 ++- .../hash/functions/hash-update-stream.xml | 21 +- reference/intl/intlcalendar/fromdatetime.xml | 36 +- reference/intl/numberformatter/format.xml | 45 ++- .../intl/numberformatter/get-error-code.xml | 21 +- reference/pgsql/functions/pg-lo-import.xml | 35 +- reference/posix/functions/posix-getrlimit.xml | 79 ++-- reference/random/book.xml | 6 +- reference/random/examples.xml | 34 +- .../random/engine/mt19937/construct.xml | 27 +- .../engine/pcgoneseq128xslrr64/construct.xml | 35 +- 28 files changed, 1090 insertions(+), 1037 deletions(-) create mode 100644 appendices/examples.xml create mode 100644 install/pie.xml diff --git a/appendices/examples.xml b/appendices/examples.xml new file mode 100644 index 000000000..63069baf4 --- /dev/null +++ b/appendices/examples.xml @@ -0,0 +1,39 @@ + + + + + Acerca de los ejemplos del manual + + Debe tenerse en cuenta que muchos ejemplos en la documentación de PHP omiten + el manejo de errores y excepciones por claridad y brevedad. + + + Esto no significa que el manejo de errores deba omitirse en el código de producción, + ya que puede llevar a que se lancen excepciones TypeError, + valores de fallo sean forzados, como &false; a un string vacío, + o supuestos sean violados, lo que podría causar errores difíciles de rastrear. + Algunas extensiones proporcionan ejemplos completos donde se incluye el manejo de errores + para demostrar el uso correcto de las diversas funciones y métodos proporcionados + por la extensión. + + + diff --git a/install/pecl.xml b/install/pecl.xml index 34d55d6fb..d742066a8 100644 --- a/install/pecl.xml +++ b/install/pecl.xml @@ -15,30 +15,30 @@ Estas instrucciones asumen que /path/to/php/src/dir/ es la - ruta a la distribución de código fuente de PHP y que extname es + ruta a la distribución del código fuente de PHP y que extname es el nombre de la extensión PECL. Ajuste según corresponda. Estas instrucciones también asumen familiaridad con el comando pear. - La información en el manual PEAR para el + La información en el manual de PEAR para el comando pear también se aplica al comando pecl. - Una extensión compartida debe ser construida, instalada y cargada para ser útil. - Los métodos descritos a continuación proporcionan varias instrucciones sobre cómo construir e + Una extensión compartida debe ser compilada, instalada y cargada para ser útil. + Los métodos descritos a continuación proporcionan varias instrucciones sobre cómo compilar e instalar las extensiones, pero no las cargan automáticamente. - Las extensiones pueden ser cargadas añadiendo una + Las extensiones pueden cargarse añadiendo una directiva extension - al archivo &php.ini; o a través del uso de la + al fichero &php.ini; o mediante el uso de la función dl. - Al construir módulos PHP, es importante tener versiones conocidas y buenas de las + Al compilar módulos PHP, es importante tener versiones conocidas y buenas de las herramientas requeridas (autoconf, automake, libtool, etc.). Consulte las Instrucciones de Git Anónimo - para detalles sobre las herramientas requeridas y las versiones necesarias. + para obtener detalles sobre las herramientas requeridas y las versiones necesarias. @@ -46,7 +46,7 @@ Descarga de extensiones PECL &pecl.moving.to.pie; - Hay varias opciones para descargar extensiones PECL, tales como: + Hay varias opciones para descargar extensiones PECL, como: @@ -62,8 +62,8 @@ El sitio web de PECL contiene información sobre las diferentes extensiones que - son ofrecidas por el Equipo de Desarrollo de PHP. - La información disponible aquí incluye: registro de cambios, notas de lanzamiento, + ofrece el Equipo de Desarrollo de PHP. + La información disponible aquí incluye: registro de cambios, notas de la versión, requisitos y otros detalles similares. @@ -72,10 +72,10 @@ pecl download extname - Las extensiones PECL que tienen lanzamientos listados en el sitio web de PECL están disponibles + Las extensiones PECL que tienen versiones publicadas en el sitio web de PECL están disponibles para descarga e instalación usando el comando pecl. - También se pueden especificar revisiones específicas. + También pueden especificarse revisiones específicas. @@ -96,7 +96,7 @@ Una vista basada en web puede verse en &url.php.svn;pecl/. Para descargar directamente desde SVN, - la siguiente secuencia de comandos puede ser usada: + puede usarse la siguiente secuencia de comandos: Para cargar una extensión, debe estar disponible como un - archivo .dll + fichero .dll en el sistema. Todas las extensiones son compiladas automáticamente y periódicamente por el Grupo PHP - (ver la siguiente sección para la descarga). + (consulte la siguiente sección para la descarga). Para compilar una extensión en PHP, consulte la - documentación compilación desde el código fuente. + documentación de compilación desde el código fuente. - Para compilar una extensión independiente (también conocida como un archivo DLL), consulte la - documentación compilación desde el código fuente. - Si el archivo DLL no está disponible ni con la distribución de PHP ni en PECL, - puede ser necesario compilarlo antes de que la extensión pueda ser usada. + Para compilar una extensión independiente (también conocida como un fichero DLL), consulte la + documentación de compilación desde el código fuente. + Si el fichero DLL no está disponible ni con la distribución de PHP ni en PECL, + puede ser necesario compilarlo antes de que la extensión pueda usarse. ¿Dónde encontrar una extensión? Las extensiones PHP suelen llamarse php_*.dll (donde el - asterisco representa el nombre de la extensión), y están ubicadas en la + asterisco representa el nombre de la extensión), y se encuentran en la carpeta PHP\ext. - PHP se distribuye con las extensiones más útiles para la mayoría de los desarrolladores. + PHP incluye las extensiones más útiles para la mayoría de los desarrolladores. Se llaman extensiones incluidas. Sin embargo, si las extensiones incluidas no proporcionan la funcionalidad necesaria, - aún se puede encontrar una extensión que sí lo haga en &link.pecl;. - La Biblioteca Comunitaria de Extensiones PHP (PECL) es un repositorio para - Extensiones PHP, proporcionando un directorio de todas las extensiones conocidas y alojando - facilidades para descargar y desarrollar extensiones PHP. + aún puede encontrarse una extensión que lo haga en &link.pecl;. + La Biblioteca de Extensiones de la Comunidad PHP (PECL) es un repositorio para + Extensiones PHP, que proporciona un directorio de todas las extensiones conocidas y ofrece + instalaciones para descargar y desarrollar extensiones PHP. Si una extensión ha sido desarrollada para usos particulares, puede estar alojada en PECL para que otros con las mismas necesidades puedan beneficiarse de ella. Un buen efecto secundario es que es una buena oportunidad para recibir comentarios, (con suerte) agradecimientos, informes de errores e incluso correcciones/parches. - Antes de enviar una extensión para alojamiento en PECL, por favor lea + Antes de enviar una extensión para alojarla en PECL, lea PECL submit. @@ -182,12 +182,12 @@ $ svn checkout https://svn.php.net/repository/pecl/extname/trunk extname - Diferentes configuraciones de seguridad de subprocesos + Diferentes configuraciones de seguridad de hilos - Diferente arquitectura de procesador (x86, x64, ...) + Diferentes arquitecturas de procesador (x86, x64, ...) @@ -204,8 +204,8 @@ $ svn checkout https://svn.php.net/repository/pecl/extname/trunk extname Tenga en cuenta que la configuración de la extensión debe coincidir con todas las configuraciones de - el ejecutable PHP que se está utilizando. - El siguiente script PHP dirá todo sobre la configuración de PHP: + el ejecutable de PHP que se está utilizando. + El siguiente script PHP informará todo sobre la configuración de PHP: @@ -234,17 +234,17 @@ drive:\path\to\php\executable\php.exe -i Carga de una extensión - La forma más común de cargar una extensión PHP es incluirla en - el archivo de configuración &php.ini;. + La forma más común de cargar una extensión PHP es incluirla en el + fichero de configuración &php.ini;. Tenga en cuenta que muchas extensiones ya están presentes en el &php.ini; y que solo es necesario eliminar el punto y coma para activarlas. - Tenga en cuenta que, a partir de PHP 7.2.0, se puede usar el - nombre de la extensión en lugar del nombre del archivo de la extensión. - Como esto es independiente del sistema operativo y más fácil, especialmente para principiantes, se convierte - en la forma recomendada de especificar extensiones para cargar. - Los nombres de archivos siguen siendo compatibles con versiones anteriores. + Tenga en cuenta que, a partir de PHP 7.2.0, puede usarse el nombre de la extensión + en lugar del nombre del fichero de la extensión. + Al ser independiente del sistema operativo y más fácil, especialmente para los recién llegados, se convierte + en la forma recomendada de especificar las extensiones a cargar. + Los nombres de fichero siguen siendo compatibles con versiones anteriores. @@ -290,7 +290,7 @@ Loaded Configuration File C:\Program Files\PHP\8.2\php.ini Resolución de problemas Si la extensión no aparece en phpinfo, - los registros deben ser verificados para saber de dónde viene el problema. + deben revisarse los registros para saber de dónde proviene el problema. Si PHP se está utilizando desde la línea de comandos (CLI), el error de carga de la extensión @@ -298,17 +298,17 @@ Loaded Configuration File C:\Program Files\PHP\8.2\php.ini Si PHP se está utilizando con un servidor web, la ubicación y el formato de los registros - varían dependiendo del software. - Por favor lea la documentación del servidor web para localizar los registros, ya que - no tiene nada que ver con PHP en sí. + varían según el software. + Lea la documentación del servidor web para localizar los registros, ya que no tiene + nada que ver con PHP en sí. Los problemas comunes son la ubicación de la DLL y las DLLs de las que depende, el valor de la configuración "extension_dir" - dentro de &php.ini; y las discrepancias en la configuración de tiempo de compilación. + dentro de &php.ini; y las incompatibilidades en la configuración de compilación. - Si el problema radica en una discrepancia en la configuración de tiempo de compilación, probablemente la DLL + Si el problema radica en una incompatibilidad en la configuración de compilación, probablemente la DLL descargada no es la correcta. Intente descargar la extensión nuevamente con la configuración adecuada. Nuevamente, phpinfo puede ser de gran ayuda. @@ -331,18 +331,18 @@ $ pecl install extname ]]> - Esto descargará el código fuente para extname, - compilará e instalará extname.so en el + Esto descargará el código fuente de extname, + lo compilará e instalará extname.so en el extension_dir. extname.so - puede entonces ser cargado a través de &php.ini;. + luego puede cargarse a través de &php.ini;. - Por defecto, el comando pecl no instalará paquetes + Por omisión, el comando pecl no instalará paquetes que estén marcados con el estado alpha o beta. - Si no hay paquetes estable disponibles, - un paquete beta puede ser instalado usando el siguiente + Si no hay paquetes stable disponibles, + puede instalarse un paquete beta usando el siguiente comando: @@ -351,7 +351,7 @@ $ pecl install extname-beta ]]> - También se puede instalar una versión específica usando esta variante: + También puede instalarse una versión específica usando esta variante: Después de habilitar la extensión en &php.ini;, es necesario reiniciar el servicio web para que - los cambios sean aplicados. + los cambios surtan efecto. @@ -371,15 +371,15 @@ $ pecl install extname-0.1 A veces, usar el instalador pecl no es una opción. Esto podría deberse a que hay un firewall o porque la extensión que se está - instalando no está disponible como un paquete compatible con PECL, como extensiones no lanzadas - desde git. - Si tal extensión necesita ser construida, se pueden usar las herramientas de construcción de bajo nivel para - realizar la construcción manualmente. + instalando no está disponible como un paquete compatible con PECL, como extensiones no publicadas + de git. + Si es necesario compilar dicha extensión, se pueden usar las herramientas de compilación de bajo nivel para + realizar la compilación manualmente. - El comando phpize se usa para preparar el entorno de construcción + El comando phpize se utiliza para preparar el entorno de compilación para una extensión PHP. - En el siguiente ejemplo, los fuentes para una extensión están en un directorio + En el siguiente ejemplo, los fuentes de una extensión están en un directorio llamado extname: @@ -395,18 +395,18 @@ $ make Una instalación exitosa habrá creado extname.so y - lo habrá puesto en el directorio de extensiones PHP + lo habrá colocado en el directorio de extensiones de PHP extensions directory. - El archivo &php.ini; necesitará ser ajustado, y una + El &php.ini; deberá ajustarse y se deberá añadir una línea extension=extname.so - necesitará ser añadida antes de que la extensión pueda ser usada. + antes de que la extensión pueda usarse. - Si el sistema carece del comando phpize, y + Si el sistema no tiene el comando phpize, y se usan paquetes precompilados (como RPMs), asegúrese de instalar también la - versión de desarrollo adecuada del paquete PHP ya que a menudo incluyen el + versión de desarrollo adecuada del paquete PHP, ya que a menudo incluyen el comando phpize - junto con los archivos de cabecera adecuados para construir PHP y sus extensiones. + junto con los ficheros de cabecera adecuados para compilar PHP y sus extensiones. Ejecute phpize --help para mostrar información adicional de uso. @@ -420,23 +420,22 @@ $ make php-config - es un simple script de shell para obtener información sobre la configuración instalada de PHP. + es un script de shell simple para obtener información sobre la configuración instalada de PHP. - Cuando las extensiones están siendo compiladas, si hay múltiples versiones de PHP instaladas, la instalación - para la cual construir puede ser especificada usando la opción + Cuando las extensiones se están compilando, si hay varias versiones de PHP instaladas, la instalación para la cual + se va a compilar puede especificarse usando la opción - durante la configuración, estableciendo la ruta del respectivo script + durante la configuración, estableciendo la ruta del script respectivo php-config. - La lista de opciones de línea de comandos proporcionadas por el script + La lista de opciones de línea de comandos proporcionadas por el + script php-config puede consultarse en cualquier momento ejecutando php-config - puede ser consultada en cualquier momento ejecutando - php-config - con el interruptor : + con el modificador : --prefix - Prefijo de directorio donde PHP está instalado, p. ej. /usr/local + Prefijo del directorio donde está instalado PHP, p. ej. /usr/local --includes - Lista de opciones -I con todos los archivos de inclusión + Lista de opciones -I con todos los ficheros de inclusión --ldflags LD - flags con los que PHP fue compilado + flags con los que se compiló PHP --libs - Librerías adicionales con las que PHP fue compilado + Bibliotecas adicionales con las que se compiló PHP --extension-dir - Directorio donde las extensiones son buscadas por defecto + Directorio donde se buscan las extensiones por omisión --include-dir - Prefijo de directorio donde los archivos de cabecera son instalados por defecto + Prefijo del directorio donde se instalan los ficheros de cabecera por omisión @@ -529,10 +528,10 @@ Options: Compilación de extensiones PECL estáticamente en PHP - Puede ser necesario construir una extensión PECL estáticamente en el binario PHP. - Para hacer esto, el código fuente de la extensión necesitará ser colocado bajo el + Puede ser necesario compilar una extensión PECL estáticamente en el binario de PHP. + Para hacerlo, el código fuente de la extensión deberá colocarse bajo el directorio /path/to/php/src/dir/ext/, - y el sistema de construcción de PHP necesitará regenerar su script de configuración. + y el sistema de compilación de PHP deberá regenerar su script de configuración. @@ -545,7 +544,7 @@ $ mv extname-x.x.x extname - Esto resultará en el siguiente directorio: + Esto dará como resultado el siguiente directorio: Desde aquí, PHP necesita ser forzado a reconstruir el script de configuración, y luego - puede ser construido normalmente: + puede ser compilado normalmente: automake 1.4+. - Versiones más nuevas de autoconf pueden funcionar pero no son - compatibles. + Versiones más recientes de autoconf pueden funcionar pero no están + soportadas. @@ -585,7 +584,7 @@ $ make install o depende de la extensión. - Típicamente, una extensión que no requiere librerías externas usa + Normalmente, una extensión que no requiere bibliotecas externas usa . Para estar seguro, ejecute lo siguiente después de buildconf: diff --git a/install/pie.xml b/install/pie.xml new file mode 100644 index 000000000..c3f2d4877 --- /dev/null +++ b/install/pie.xml @@ -0,0 +1,37 @@ + + + + + Instalación de PIE y extensiones de terceros + + + Introducción a PIE + + &link.pie; es un instalador para PHP que permite instalar + extensiones PHP de terceros, que luego pueden ser fácilmente instaladas y actualizadas. + Aprovecha el repositorio de extensiones PHP de + Packagist para encontrar el código fuente + para compilar la extensión, o un binario de Windows para descargar, si existe. Si + descarga el código fuente, también sabe cómo compilarlo e instalarlo. + + + Tras instalar + los requisitos y PIE en sí, puede instalar la + extensión MongoDB ejecutando + el siguiente comando en la línea de comandos. + + + Instalación de la extensión MongoDB con PIE + + + + + + La documentación de "Uso de PIE" + profundiza más en este tema. + + + + diff --git a/language-snippets.ent b/language-snippets.ent index f8c7bf9b4..1a6d7d7df 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -1,5 +1,5 @@ - + @@ -689,6 +689,10 @@ Se recomienda evitar su uso. La salida del ejemplo anterior en PHP 8.4 es similar a :'> + Output of the above example in PHP 8.5:'> + + Output of the above example in PHP 8.5 is similar to:'> + Resultado del ejemplo anterior en una máquina de 32 bits :'> Resultado del ejemplo anterior en una máquina de 64 bits :'> diff --git a/language/control-structures/foreach.xml b/language/control-structures/foreach.xml index 5a3c92126..723166be4 100644 --- a/language/control-structures/foreach.xml +++ b/language/control-structures/foreach.xml @@ -1,19 +1,17 @@ - - - - + + foreach - La estructura de lenguaje foreach proporciona una forma sencilla de - recorrer array y objetos Traversable. + La estructura foreach proporciona una forma sencilla de + iterar sobre arrays y objetos Traversable. foreach generará un error cuando se utilice con - una variable que contenga un tipo de datos diferente o con una variable no inicializada. + una variable que contenga un tipo de dato diferente o con una variable no inicializada. - foreach puede eventualmente obtener la clave de cada elemento: + foreach puede obtener opcionalmente la key de cada elemento: $value) { - La primera forma revisa el array + La primera forma recorre el iterable dado por iterable_expression. En cada iteración, el valor del elemento actual se asigna a $value. - La segunda forma asignará además la clave del elemento actual - a la variable $key en cada iteración. + La segunda forma asignará adicionalmente la clave del elemento actual a + la variable $key en cada iteración. - Es importante señalar que foreach no modifica el puntero - interno del array, que es utilizado por funciones como - current y key. + Tenga en cuenta que foreach no modifica el puntero interno del array, + que es utilizado por funciones como current + y key. - Es posible personalizar - la iteración sobre objetos. + Es posible + personalizar la iteración de objetos. @@ -53,28 +51,26 @@ foreach (iterable_expression as $key => $value) { 1, - "dos" => 2, - "tres" => 3, - "diecisiete" => 17 + "one" => 1, + "two" => 2, + "three" => 3, + "seventeen" => 17 ]; foreach ($array as $key => $value) { - echo "\$array[$key] => $value.\n"; + echo "Clave: $key => Valor: $value\n"; } -/* Ejemplo: arrays clave-valor multidimensionales */ +/* Ejemplo: arrays multidimensionales clave-valor */ $grid = []; $grid[0][0] = "a"; $grid[0][1] = "b"; @@ -83,12 +79,11 @@ $grid[1][1] = "z"; foreach ($grid as $y => $row) { foreach ($row as $x => $value) { - echo "Valor en la posición x=$x y y=$y: $value\n"; + echo "Valor en posición x=$x y y=$y: $value\n"; } } /* Ejemplo: arrays dinámicos */ - foreach (range(1, 5) as $value) { echo "$value\n"; } @@ -98,25 +93,26 @@ foreach (range(1, 5) as $value) { - foreach no soporta la posibilidad de - suprimir los mensajes de error utilizando el + foreach no admite la capacidad de + suprimir mensajes de error utilizando @. - Extracción de arrays internos + Desempaquetar arrays anidados - Es posible iterar sobre un array de arrays y descomponer el array anidado - en variables de bucle utilizando la - desestructuración de array - mediante [] o utilizando el constructor de lenguaje list como valor. + Es posible iterar sobre un array de arrays y desempaquetar el array anidado + en variables de bucle utilizando ya sea + destructuración de arrays + mediante [] o utilizando la estructura de lenguaje + list como valor. - Es importante señalar que - la desestructuración de array + Tenga en cuenta que + destructuración de arrays mediante [] solo es posible a partir de PHP 7.1.0 @@ -125,13 +121,13 @@ foreach (range(1, 5) as $value) { - En los dos ejemplos siguientes, $a será definido sobre + En ambos ejemplos siguientes, $a se establecerá con el primer elemento del array anidado y $b contendrá el segundo elemento: - - Cuando hay menos variables que elementos en el array, + Cuando se proporcionan menos variables que elementos en el array, los elementos restantes serán ignorados. - De manera similar, los elementos pueden ser ignorados utilizando una coma: - + De manera similar, los elementos pueden omitirse utilizando una coma: ]]> @@ -197,8 +191,8 @@ foreach ($array as [, , $c]) { - Se generará una notificación si no hay suficientes elementos en el array - para llenar la función list: + Se generará un aviso si no hay suficientes elementos en el array para llenar + el list: @@ -232,9 +226,9 @@ A: 3; B: 4; C: foreach y referencias - Es posible modificar directamente los elementos del array en un bucle precediendo + Es posible modificar directamente elementos de array dentro de un bucle precediendo $value con &. - En este caso, el valor será asignado por + En ese caso el valor será asignado por referencia. @@ -244,7 +238,7 @@ $arr = [1, 2, 3, 4]; foreach ($arr as &$value) { $value = $value * 2; } -// $arr ahora es [2, 4, 6, 8] +// $arr es ahora [2, 4, 6, 8] unset($value); // romper la referencia con el último elemento ?> ]]> @@ -253,10 +247,10 @@ unset($value); // romper la referencia con el último elemento - La referencia a $value del último elemento del array + La referencia a un $value del último elemento del array permanece incluso después del bucle foreach. Se recomienda destruir estas referencias utilizando unset. - De lo contrario, se producirá el siguiente comportamiento: + De lo contrario, ocurrirá el siguiente comportamiento: @@ -266,16 +260,16 @@ $arr = [1, 2, 3, 4]; foreach ($arr as &$value) { $value = $value * 2; } -// $arr ahora es [2, 4, 6, 8] +// $arr es ahora [2, 4, 6, 8] -// sin unset($value), $value sigue siendo una referencia al último elemento: $arr[3] +// sin un unset($value), $value sigue siendo una referencia al último elemento: $arr[3] foreach ($arr as $key => $value) { - // $arr[3] será actualizado con cada valor de $arr... + // $arr[3] se actualizará con cada valor de $arr... echo "{$key} => {$value} "; print_r($arr); } -// ...hasta que finalmente el penúltimo valor sea copiado en el último valor +// ...hasta que finalmente el penúltimo valor se copie sobre el último valor ?> ]]> @@ -291,7 +285,7 @@ foreach ($arr as $key => $value) { - Iterar sobre los valores de un array constante por referencia + Iterar los valores de un array constante por referencia - - + - - Enumerations + + Enumeraciones - Descripción general de las enumeraciónes + Visión general de las enumeraciones - Las enumeraciónes, o "Enums", permiten a un desarrollador definir un tipo personalizado que está limitado a uno + Las enumeraciones, o "Enums", permiten a un desarrollador definir un tipo personalizado que se limita a uno de un número discreto de valores posibles. Esto puede ser especialmente útil al definir un - modelo de dominio, ya que permite "hacer que los estados inválidos sean irrepresentables". + modelo de dominio, ya que permite "hacer que los estados no válidos sean irrepresentables". - Enums aparecen en muchos lenguajes con una variedad de características diferentes. En PHP, - Enums son un tipo especial de objeto. El Enum en sí es una clase, y sus posibles - casos son todos una instancia de esa clase. Eso significa que los casos de - Enum son objetos válidos y pueden usarse en cualquier lugar donde se pueda usar un objeto, incluidas las comprobaciones de tipo. + Las enumeraciones aparecen en muchos lenguajes con una variedad de características diferentes. En PHP, + las enumeraciones son un tipo especial de objeto. La enumeración en sí es una clase, y sus posibles + casos son todos objetos de instancia única de esa clase. Eso significa que los casos de enumeración son + objetos válidos y pueden usarse dondequiera que se pueda usar un objeto, incluyendo comprobaciones de tipo. - El ejemplo más popular de enumeraciónes es el tipo booleano incorporado, que es un + El ejemplo más popular de enumeraciones es el tipo booleano integrado, que es un tipo enumerado con valores legales &true; y &false;. - Los Enums permiten a los desarrolladores definir sus propias enumeraciónes arbitrariamente robustas. + Las enumeraciones permiten a los desarrolladores definir sus propias enumeraciones arbitrariamente robustas. - Enumeraciónes básicas + Enumeraciones básicas - Enums son similares a las clases, y comparten los mismos espacios de nombres que las clases, interfaces y rasgos (traits). - También se pueden cargar automáticamente de la misma manera. Un Enum define un nuevo tipo, que tiene un número fijo - y limitado de valores válidos. + Las enumeraciones son similares a las clases y comparten los mismos espacios de nombres que las clases, + interfaces y traits. También son autocargables de la misma manera. Una enumeración define un nuevo tipo, + que tiene un número fijo y limitado de valores legales posibles. - Esta declaración crea un nuevo tipo enumerado llamado Suit, que tiene - cuatro y solo cuatro valores válidos: Suit::Hearts, Suit::Diamonds, - Suit::Clubs y Suit::Spades. Las variables pueden asignarse - a uno de esos valores válidos. Una función puede ser comprobada por tipo contra un tipo enumerado, + cuatro y solo cuatro valores legales: Suit::Hearts, Suit::Diamonds, + Suit::Clubs, y Suit::Spades. Las variables pueden ser asignadas + a uno de esos valores legales. Una función puede ser comprobada de tipo contra un tipo enumerado, en cuyo caso solo se pueden pasar valores de ese tipo. @@ -84,17 +82,17 @@ pick_a_card('Spades'); - Una enumeración puede tener cero o más definiciones de case, sin un máximo. - Una enumeración de cero casos es sintácticamente válida, aunque bastante inútil. + Una enumeración puede tener cero o más definiciones de case, sin máximo. + Una enumeración sin casos es sintácticamente válida, aunque bastante inútil. - Para casos de enumeración, se aplican las mismas reglas de sintaxis que a cualquier etiqueta en PHP, consulte + Para los casos de enumeración, se aplican las mismas reglas sintácticas que a cualquier etiqueta en PHP, ver Constantes. - Por omisión, los casos no están intrínsecamente respaldados por un valor escalar. Es decir, Suit::Hearts + Por omisión, los casos no están respaldados intrínsecamente por un valor escalar. Es decir, Suit::Hearts no es igual a "0". En su lugar, cada caso está respaldado por un objeto singleton de ese nombre. Eso significa que: @@ -113,24 +111,23 @@ $a instanceof Suit; // true - Esto también significa que los valores de enumeración nunca son < o > entre sí, - ya que esas comparaciones no tienen sentido en objetos. Esas comparaciones siempre devolverán + También significa que los valores de enumeración nunca son < o > entre sí, + ya que esas comparaciones no tienen significado en los objetos. Esas comparaciones siempre devolverán &false; al trabajar con valores de enumeración. - Estos tipos de casos, sin datos relacionados, se llaman "Casos Puros". Un Enum que contiene - solo Casos Puros se llama un Pure Enum. + Este tipo de caso, sin datos relacionados, se denomina "Caso Puro". Una enumeración que contiene + solo Casos Puros se denomina Enumeración Pura. - Todos los Casos Puros se implementan como instancias de su tipo de enumeración. El tipo de enumeración - se representa internamente como una clase. + Todos los Casos Puros se implementan como instancias de su tipo de enumeración. El tipo de enumeración está representado internamente como una clase. - Todos los Casos tienen una propiedad de solo lectura, name, que es el nombre - con distinción de mayúsculas y minúsculas del caso en sí. + Todos los Casos tienen una propiedad de solo lectura, name, que es el nombre sensible a mayúsculas y minúsculas + del caso en sí. @@ -138,31 +135,31 @@ $a instanceof Suit; // true name; -// Imprime "Spades" +// imprime "Spades" ?> ]]> - Esto también hace posible utilizar la función defined y constant - para comprobar la existencia o leer un caso de enumeración si el nombre se obtiene dinámicamente. - Esto es, sin embargo, desaconsejado, ya que el uso de Enumeraciónes respaldadas + También es posible usar las funciones defined y constant + para verificar la existencia o leer un caso de enumeración si el nombre se obtiene dinámicamente. + Sin embargo, esto se desaconseja ya que el uso de Enumeraciones respaldadas debería funcionar para la mayoría de los casos de uso. - Enumeraciónes respaldadas + Enumeraciones respaldadas - Por omisión, los Casos Enumerados no tienen un equivalente escalar. Son simplemente objetos singleton. Sin embargo, - hay muchos casos en los que un Caso Enumerado necesita poder viajar de ida y vuelta a una base de datos o - almacenamiento de datos similar, por lo que tener un equivalente escalar (y por lo tanto trivialmente serializable) - incorporado definido intrínsecamente es útil. + Por omisión, los Casos Enumerados no tienen equivalente escalar. Son simplemente objetos singleton. Sin embargo, + hay amplios casos en los que un Caso Enumerado necesita poder hacer un viaje de ida y vuelta a una base de datos o + un almacén de datos similar, por lo que tener un equivalente escalar integrado (y por lo tanto trivialmente serializable) definido + intrínsecamente es útil. - Para definir un escalar equivalente para una Enumeración, la sintaxis es la siguiente: + Para definir un equivalente escalar para una Enumeración, la sintaxis es la siguiente: - Un caso que tiene un equivalente escalar se llama un Caso Respaldado, ya que está "respaldado" - por un valor más simple. Una Enumeración que contiene todos los Casos Respaldados se llama una "Enum Respaldada". - Una Enum Respaldada solo puede contener Casos Respaldados. Una Enum Pura solo puede contener Casos Puros. + Un caso que tiene un equivalente escalar se denomina Caso Respaldado, ya que está "respaldado" + por un valor más simple. Una enumeración que contiene todos los Casos Respaldados se denomina "Enumeración Respaldada". + Una Enumeración Respaldada solo puede contener Casos Respaldados. Una Enumeración Pura solo puede contener Casos Puros. - Una Enum Respaldada puede estar respaldada por tipos de int o string, - y una enumeración dada solo admite un solo tipo a la vez (es decir, no hay unión de int|string). - Si una enumeración se marca como teniendo un equivalente escalar, entonces todos los casos deben tener un equivalente escalar único - definido explícitamente. No hay equivalentes escalares generados automáticamente - (por ejemplo, enteros secuenciales). Los Casos Respaldados deben ser únicos; dos casos de enum respaldados - no pueden tener el mismo equivalente escalar. Sin embargo, una constante puede hacer referencia a un caso, - creando efectivamente un alias. Consulte Constantes de enumeración. + Una Enumeración Respaldada puede estar respaldada por tipos de int o string, + y una enumeración dada admite solo un tipo a la vez (es decir, no hay unión de int|string). + Si una enumeración está marcada como que tiene un equivalente escalar, entonces todos los casos deben tener un equivalente + escalar único definido explícitamente. No hay equivalentes escalares generados automáticamente + (por ejemplo, enteros secuenciales). Los casos respaldados deben ser únicos; dos casos de enumeración respaldados no pueden + tener el mismo equivalente escalar. Sin embargo, una constante puede referirse a un caso, creando efectivamente + un alias. Ver Constantes de enumeración. Los valores equivalentes pueden ser una expresión escalar constante. Antes de PHP 8.2.0, los valores equivalentes debían ser literales o expresiones literales. - Esto significa que las constantes y expresiones constantes no eran compatibles. - Es decir, 1 + 1 era aceptable, pero no 1 + SOME_CONST - no lo es. + Esto significa que las constantes y expresiones constantes no estaban admitidas. + Es decir, 1 + 1 estaba permitido, pero 1 + SOME_CONST no. - Casos Respaldados tienen una propiedad adicional de solo lectura, value, que es el valor + Los Casos Respaldados tienen una propiedad adicional de solo lectura, value, que es el valor especificado en la definición. @@ -220,7 +216,7 @@ print Suit::Clubs->value; Para hacer cumplir la propiedad value como de solo lectura, una variable no puede - asignarse como una referencia a ella. Es decir, lo siguiente arroja un error: + ser asignada como referencia a ella. Es decir, lo siguiente genera un error: @@ -229,37 +225,38 @@ print Suit::Clubs->value; $suit = Suit::Clubs; $ref = &$suit->value; -// Error: Cannot acquire reference to property Suit::$value +// Error: No se puede obtener una referencia a la propiedad Suit::$value ?> ]]> - Las enumeraciónes respaldadas implementan una interfaz interna BackedEnum, + Las enumeraciones respaldadas implementan una interfaz interna BackedEnum, que expone dos métodos adicionales: - from(int|string): self tomará un escalar y devolverá el Caso Enum correspondiente. - Si no se encuentra uno, lanzará un ValueError. Esto es útil principalmente - en casos en los que el escalar de entrada es de confianza y un valor de enumeración faltante debería ser + from(int|string): self tomará un escalar y devolverá el Caso de Enumeración correspondiente. + Si no se encuentra ninguno, lanzará un ValueError. Esto es principalmente + útil en casos donde el escalar de entrada es confiable y un valor de enumeración faltante debería ser considerado un error que detiene la aplicación. - tryFrom(int|string): ?self tomará un escalar y devolverá el Caso Enum correspondiente. - Si no se encuentra uno, devolverá null. Esto es útil principalmente en casos en los que - el escalar de entrada no es de confianza y el llamante desea implementar su propia lógica de manejo de errores - o de valor predeterminado. + tryFrom(int|string): ?self tomará un escalar y devolverá el + Caso de Enumeración correspondiente. Si no se encuentra ninguno, devolverá null. + Esto es principalmente útil en casos donde el escalar de entrada no es confiable y el llamador quiere + implementar su propia lógica de manejo de errores o valores por omisión. - Los métodos from() y tryFrom() siguen las reglas estándar de tipado débil/fuerte. - En modo de tipado débil, pasar un entero o una cadena es aceptable y el sistema convertirá el valor en consecuencia. - Pasar un flotante también funcionará y se convertirá. En modo de tipado estricto, pasar un entero a from() en un - enum respaldado por una cadena (o viceversa) resultará en un TypeError, - al igual que un flotante en todas las circunstancias. Todos los demás tipos de parámetros lanzarán un TypeError + Los métodos from() y tryFrom() siguen las reglas estándar + de tipado débil/fuerte. En modo de tipado débil, pasar un entero o string es admisible + y el sistema coercionará el valor en consecuencia. Pasar un float también funcionará y será + coercionado. En modo de tipado estricto, pasar un entero a from() en una + enumeración respaldada por string (o viceversa) resultará en un TypeError, + al igual que un float en todas las circunstancias. Todos los demás tipos de parámetros lanzarán un TypeError en ambos modos. @@ -271,27 +268,27 @@ $record = get_stuff_from_database($id); print $record['suit']; $suit = Suit::from($record['suit']); -// Dato no válido lanzará un ValueError: "X" is not a valid scalar value for enum "Suit" +// Datos no válidos lanzan un ValueError: "X" no es un valor escalar válido para la enumeración "Suit" print $suit->value; $suit = Suit::tryFrom('A') ?? Suit::Spades; -// Dato no válido devolverá null, por lo tanto será usado Suit::Spades en su lugar. +// Datos no válidos devuelven null, por lo que se usa Suit::Spades en su lugar. print $suit->value; ?> ]]> - Definir manualmente un método from() o tryFrom() en un Enum Respaldado devolverá en un error fatal. + Definir manualmente un método from() o tryFrom() en una Enumeración Respaldada resultará en un error fatal. - Métodos de enumeraciónes + Métodos de enumeración - Enums (tanto Enums Puros como Enums Respaldados) pueden contener métodos, y pueden implementar interfaces. - Si un Enum implementa una interfaz, entonces cualquier comprobación de tipo para esa interfaz también aceptará - todos los casos de ese Enum. + Las enumeraciones (tanto Enumeraciones Puras como Enumeraciones Respaldadas) pueden contener métodos y pueden implementar interfaces. + Si una enumeración implementa una interfaz, entonces cualquier comprobación de tipo para esa interfaz también aceptará + todos los casos de esa enumeración. @@ -310,7 +307,7 @@ enum Suit implements Colorful case Clubs; case Spades; - // Rellenando el contrato de la interface. + // Cumple con el contrato de la interfaz. public function color(): string { return match($this) { @@ -319,7 +316,7 @@ enum Suit implements Colorful }; } - // No es parte de una interfaz; eso está bien. + // No forma parte de una interfaz; eso está bien. public function shape(): string { return "Rectangle"; @@ -333,19 +330,19 @@ function paint(Colorful $c) paint(Suit::Clubs); // Funciona -print Suit::Diamonds->shape(); // Imprime "Rectangle" +print Suit::Diamonds->shape(); // imprime "Rectangle" ?> ]]> En este ejemplo, las cuatro instancias de Suit tienen dos métodos, - color() y shape(). En lo que respecta al código de llamada - y a las comprobaciones de tipo, se comportan exactamente igual que cualquier otra instancia de objeto. + color() y shape(). En cuanto al código de llamada + y las comprobaciones de tipo, se comportan exactamente igual que cualquier otra instancia de objeto. - En un Enum Respaldado, la declaración de interfaz va después de la declaración del tipo de respaldo. + En una Enumeración Respaldada, la declaración de interfaz va después de la declaración del tipo de respaldo. @@ -364,7 +361,7 @@ enum Suit: string implements Colorful case Clubs = 'C'; case Spades = 'S'; - // Rellenando el contrato de la interface. + // Cumple con el contrato de la interfaz. public function color(): string { return match($this) { @@ -378,18 +375,18 @@ enum Suit: string implements Colorful - Dentro de un método, la variable $this está definida y se refiere a la instancia de Caso. + Dentro de un método, la variable $this está definida y se refiere a la instancia del Caso. - Los métodos pueden ser arbitrariamente complejos, pero en la práctica generalmente devolverán un valor estático o + Los métodos pueden ser arbitrariamente complejos, pero en la práctica suelen devolver un valor estático o &match; en $this para proporcionar diferentes resultados para diferentes casos. - Tenga en cuenta que en este caso sería una mejor práctica de modelado de datos definir también un - Tipo Enum SuitColor con valores Rojo y Negro y devolver eso en su lugar. + Tenga en cuenta que en este caso sería una mejor práctica de modelado de datos también definir un + tipo de enumeración SuitColor con valores Red y Black y devolver eso en su lugar. Sin embargo, eso complicaría este ejemplo. @@ -431,8 +428,8 @@ final class Suit implements UnitEnum, Colorful public static function cases(): array { - // Método no válido, porque definir manualmente un método cases() en un Enum está prohibido. - // Vea también la sección "Listado de valores". + // Método ilegal, porque definir manualmente un método cases() en una Enumeración no está permitido. + // Ver también la sección "Listado de valores". } } ?> @@ -440,17 +437,17 @@ final class Suit implements UnitEnum, Colorful - Los métodos pueden ser public, privados o protegidos, aunque en la práctica privado y - protegido son equivalentes ya que no se permite la herencia. + Los métodos pueden ser públicos, privados o protegidos, aunque en la práctica privado y + protegido son equivalentes ya que la herencia no está permitida. - Métodos estáticos de enumeraciónes + Métodos estáticos de enumeración - Las enumeraciónes también pueden tener métodos estáticos. El uso de métodos estáticos en la + Las enumeraciones también pueden tener métodos estáticos. El uso de métodos estáticos en la enumeración en sí es principalmente para constructores alternativos. Por ejemplo: @@ -479,20 +476,20 @@ enum Size Los métodos estáticos pueden ser públicos, privados o protegidos, aunque en la práctica privado - y protegido son equivalentes ya que no se permite la herencia. + y protegido son equivalentes ya que la herencia no está permitida. - Enumeraciónes constantes + Constantes de enumeración - Enumeraciónes pueden incluir constantes, que pueden ser públicas, privadas o protegidas, - aunque en la práctica privado y protegido son equivalentes ya que no se permite la herencia. + Las enumeraciones pueden incluir constantes, que pueden ser públicas, privadas o protegidas, + aunque en la práctica privada y protegida son equivalentes ya que la herencia no está permitida. - Una constante puede referirse a un caso de enumeración: + Una constante de enumeración puede referirse a un caso de enumeración: - Rasgos (Traits) + Traits - Las enumeraciónes pueden aprovechar los rasgos, que se comportarán igual que en las clases. - La advertencia es que los rasgos use (usados) en una enumeración no deben contener propiedades. - Solo pueden incluir métodos, métodos estáticos y constantes. Un rasgo con propiedades resultará en - un error fatal. + Las enumeraciones pueden aprovechar los traits, que se comportarán igual que en las clases. + La salvedad es que los traits useados en una enumeración no deben contener propiedades. + Solo pueden incluir métodos, métodos estáticos y constantes. Un trait con propiedades resultará en un error fatal. @@ -562,24 +558,24 @@ enum Suit implements Colorful Valores de enumeración en expresiones constantes - Por que los casos son representados como constantes en la enumeración misma, pueden ser usados como valores - estáticos en la mayoría de las expresiones constantes: valores predeterminados de propiedades, valores predeterminados de variables estáticas, - valores predeterminados de parámetros, valores constantes globales y de clase. No pueden ser usados en otros valores de casos de enumeración, + Debido a que los casos están representados como constantes en la enumeración en sí, pueden usarse como valores estáticos + en la mayoría de las expresiones constantes: valores por omisión de propiedades, valores por omisión de variables estáticas, + valores por omisión de parámetros, valores de constantes globales y de clase. No pueden usarse en otros valores de casos de enumeración, pero las constantes normales pueden referirse a un caso de enumeración. - Sin embargo, las llamadas a métodos mágicos implícitos como ArrayAccess en enumeraciones no están permitidas en definiciones estáticas - o constantes ya que no podemos garantizar absolutamente que el valor resultante sea determinista - o que la invocación del método esté libre de efectos secundarios. Llamadas a funciones, llamadas a métodos y - acceso a propiedades siguen siendo operaciones no válidas en expresiones constantes. + Sin embargo, las llamadas implícitas a métodos mágicos como ArrayAccess en enumeraciones no están permitidas + en definiciones estáticas o constantes, ya que no podemos garantizar absolutamente que el valor resultante sea determinista + o que la invocación del método esté libre de efectos secundarios. Las llamadas a funciones, llamadas a métodos y + el acceso a propiedades continúan siendo operaciones no válidas en expresiones constantes. - Difencias de objetos + Diferencias con los objetos - Aunque las enumeraciónes están construidas sobre clases y objetos, no admiten toda la funcionalidad relacionada con objetos. - En particular, los casos de Enum tienen prohibido tener estado. + Aunque las enumeraciones están construidas sobre clases y objetos, no admiten toda la funcionalidad relacionada con objetos. + En particular, los casos de enumeración tienen prohibido tener estado. - Constructores y Destructores están prohibidos. - No soporta herencia. Las enumeraciónes no pueden heredarse ni ser heredadas. - Propiedades estáticas o de objeto no están permitidas. - Clonar un caso de Enum no está soportado, ya que los casos deben ser instancias singleton. - Métodos mágicos, excepto los listados a continuación, están prohibidos. - Las enumeraciónes deben declararse siempre antes de ser usadas. + Los constructores y destructores están prohibidos. + La herencia no está admitida. Las enumeraciones no pueden extender ni ser extendidas. + No se permiten propiedades estáticas u objetuales. + Clonar un caso de enumeración no está admitido, ya que los casos deben ser instancias singleton. + Métodos mágicos, excepto los listados a continuación, no están permitidos. + Las enumeraciones siempre deben declararse antes de ser usadas. - Las siguientes funcionalidades de objetos están disponibles y se comportan igual que en cualquier otro objeto: + La siguiente funcionalidad de objetos está disponible y se comporta igual que en cualquier otro objeto: Métodos públicos, privados y protegidos. Métodos estáticos públicos, privados y protegidos. Constantes públicas, privadas y protegidas. - Las enumeraciónes pueden implementar cualquier número de interfaces. + Las enumeraciones pueden implementar cualquier número de interfaces. - Atributos pueden ser adjuntados a enumeraciónes y casos. - El filtro de destino TARGET_CLASS incluye las enumeraciónes en sí. - El filtro de destino TARGET_CLASS_CONST incluye los Casos de Enum. + Las enumeraciones y los casos pueden tener atributos + adjuntos a ellos. El filtro de destino TARGET_CLASS + incluye las enumeraciones en sí. El filtro de destino TARGET_CLASS_CONST + incluye los Casos de Enumeración. - Los métodos mágicos __call, __callStatic, - e __invoke. + __call, __callStatic, + y __invoke métodos mágicos - Las constantes __CLASS__ y __FUNCTION__ se comportan como normalmente. + Las constantes __CLASS__ y __FUNCTION__ se comportan normalmente - El literal ::class mágico en un tipo Enum se evalúa al nombre del tipo - incluyendo cualquier espacio de nombres, exactamente igual que un objeto. El literal ::class - mágico en una instancia de Caso también se evalúa al tipo Enum, ya que es una + La constante mágica ::class en un tipo de enumeración se evalúa al nombre + del tipo incluyendo cualquier espacio de nombres, exactamente igual que un objeto. La constante mágica ::class + en una instancia de Caso también se evalúa al tipo de enumeración, ya que es una instancia de ese tipo. - Además, los casos de Enum no pueden ser instanciados directamente con new, ni con + Además, los casos de enumeración no pueden ser instanciados directamente con new, ni con ReflectionClass::newInstanceWithoutConstructor en reflexión. Ambos resultarán en un error. @@ -679,22 +676,22 @@ $foo = new Foo(); newInstanceWithoutConstructor() -// Error: Cannot instantiate enum Suit +// Error: No se puede instanciar la enumeración Suit ?> ]]> - Listando valores + Listado de valores - Tanto los Enums Puros como los Enums Respaldados implementan una interfaz interna llamada + Tanto las Enumeraciones Puras como las Enumeraciones Respaldadas implementan una interfaz interna llamada UnitEnum. UnitEnum incluye un método estático - cases(). cases() devuelve un array empaquetado de + cases(). cases() devuelve un array compacto de todos los Casos definidos en el orden de declaración. @@ -703,21 +700,21 @@ $horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor( ]]> - Definiar manualmente el método cases() en una enumeración causará en un error fatal. + Definir manualmente un método cases() en una Enumeración resultará en un error fatal. Serialización - Las enumeraciónes se serializan de manera diferente a los objetos. Específicamente, tienen un nuevo código de serialización, - "E", que especifica el nombre del caso de la enumeración. El rutina de deserialización es capaz de - usar eso para establecer una variable en el valor singleton existente. Eso asegura que: + Las enumeraciones se serializan de manera diferente a los objetos. Específicamente, tienen un nuevo código de serialización, + "E", que especifica el nombre del caso de enumeración. La rutina de deserialización puede entonces + usar eso para establecer una variable al valor singleton existente. Eso asegura que: @@ -733,19 +730,18 @@ print serialize(Suit::Hearts); - Durante la deserialización, si no se puede encontrar un caso de enumeración que coincida con un valor serializado, + Al deserializar, si no se puede encontrar una enumeración y un caso para coincidir con un valor serializado, se emitirá una advertencia y se devolverá &false;. - Si un Enum Puro se serializa a JSON, se lanzará un error. Si un Enum Respaldado - se serializa a JSON, se representará solo por su valor escalar, en el - tipo apropiado. El comportamiento de ambos puede ser anulado implementando + Si una Enumeración Pura se serializa a JSON, se lanzará un error. Si una Enumeración Respaldada + se serializa a JSON, estará representada solo por su valor escalar, en el + tipo apropiado. El comportamiento de ambas puede ser sobrescrito implementando JsonSerializable. - - Para print_r, la salida de un caso de enumeración es ligeramente diferente + Para print_r, la salida de un caso de enumeración es ligeramente diferente de los objetos para minimizar la confusión. @@ -764,7 +760,7 @@ enum Baz: int { print_r(Foo::Bar); print_r(Baz::Beep); -/* Imprime: +/* Produce Foo Enum ( [name] => Bar @@ -781,7 +777,7 @@ Baz Enum:int { - Porque las enumeraciónes no pueden ser heredadas + Por qué las enumeraciones no son extensibles Las clases tienen contratos en sus métodos: @@ -805,12 +801,12 @@ function bar(B $b) { Este código es seguro en cuanto a tipos, ya que B sigue el contrato de A, y a través de la magia de - co/contra-varianza, cualquier expectativa que uno pueda tener de los métodos - se mantendrá, expecto excepciones. + la co/contravariancia, cualquier expectativa que uno pueda tener de los métodos será + preservada, exceptuando las excepciones. - Enums tienen contratos en sus casos, no en sus métodos: + Las enumeraciones tienen contratos en sus casos, no en sus métodos: @@ -823,7 +819,7 @@ enum ErrorCode { function quux(ErrorCode $errorCode) { - // Cuando escribimos, este código parece cubrir todos los casos + // Cuando se escribe, este código parece cubrir todos los casos match ($errorCode) { ErrorCode::SOMETHING_BROKE => true, }; @@ -839,16 +835,15 @@ function quux(ErrorCode $errorCode) - But imagine it was allowed to extend enums: + Pero imagina que estuviera permitido extender enumeraciones: - - Bajo reglas de herencia normales, una clase que extiende otra pasará + Bajo las reglas normales de herencia, una clase que extiende a otra pasará la comprobación de tipo. - El problema sería que la sentencia &match; en quux() ya no cubre todos - los casos. Porque no sabe sobre MoreErrorCode::PEBKAC la sentencia &match; lanzará una excepción. + El problema sería que la sentencia &match; en quux() ya no cubriría todos + los casos. Debido a que no sabe acerca de MoreErrorCode::PEBKAC, el match lanzará una excepción. - Por esta razón, las enumeraciónes son finales y no pueden ser extendidas. + Debido a esto, las enumeraciones son finales y no pueden ser extendidas. @@ -902,10 +897,10 @@ function query($fields, $filter, SortOrder $order = SortOrder::Asc) ]]> - La función query() acepta un parámetro $order que - debe ser de tipo SortOrder que garantiza que solo puede ser SortOrder::Asc - o SortOrder::Desc. Cualquier otro valor resultará en un - TypeError, por lo que no se necesita más comprobación o prueba de errores. + La función query() ahora puede proceder con la seguridad de que + $order está garantizado que sea SortOrder::Asc + o SortOrder::Desc. Cualquier otro valor habría resultado en un + TypeError, por lo que no se necesita ninguna comprobación o prueba de errores adicional. @@ -943,13 +938,13 @@ enum UserStatus: string En este ejemplo, el estado de un usuario puede ser uno de, y exclusivamente, UserStatus::Pending, UserStatus::Active, UserStatus::Suspended, o - UserStatus::CanceledByUser. Una función puede tipar un parámetro con + UserStatus::CanceledByUser. Una función puede tipar un parámetro contra UserStatus y luego solo aceptar esos cuatro valores, punto. - Todos los valores tienen un método label(), que devuelve una cadena legible por humanos. - Esa cadena es independiente de la cadena equivalente escalar "nombre de máquina", que se puede usar en, + Los cuatro valores tienen un método label(), que devuelve un string legible por humanos. + Ese string es independiente del string equivalente escalar de "nombre de máquina", que puede usarse en, por ejemplo, un campo de base de datos o un cuadro de selección HTML. @@ -968,7 +963,7 @@ foreach (UserStatus::cases() as $case) { - + + Arrays @@ -10,8 +10,8 @@ está optimizado para varios usos diferentes; puede ser tratado como un array, lista (vector), tabla hash (una implementación de un mapa), diccionario, colección, pila, cola, y probablemente más. Como los valores array pueden - ser otros arrays, árboles y arrays arrays - multidimensionales también son posibles. + ser otros arrays, también son posibles árboles y arrays + multidimensionales. @@ -27,9 +27,9 @@ Especificación con <function>array</function> - Un array puede ser creado usando la construcción de lenguaje array. Toma cualquier número de pares - clave => valor separados por comas - como argumentos. + Un array puede ser creado usando la construcción del lenguaje array. + Acepta cualquier número de pares clave => valor + separados por comas como argumentos. @@ -42,7 +42,7 @@ array( - La coma después del último elemento del array es opcional y puede ser omitida. Esto se hace usualmente + La coma después del último elemento del array es opcional y puede ser omitida. Esto se suele hacer para arrays de una sola línea, es decir, array(1, 2) es preferido sobre array(1, 2, ). Para arrays de múltiples líneas, por otro lado, la coma final es comúnmente usada, ya que permite una adición más fácil de nuevos elementos al final. @@ -84,32 +84,33 @@ var_dump($array1, $array2); - Además, las siguientes conversiones de clave ocurrirán: + Además, se producirán las siguientes conversiones de clave: Strings que contienen ints decimales válidos, a menos que el número esté precedido por un signo +, serán convertidos al - tipo int. Por ejemplo, la clave "8" será almacenada bajo 8. Por otro lado, "08" no + tipo int. Por ejemplo, la clave "8" se almacenará realmente bajo 8. Por otro lado, "08" no será convertido, ya que no es un entero decimal válido. - Los floats también son convertidos a ints, lo que significa que la - parte fraccional será truncada. Por ejemplo, la clave 8.7 será almacenada bajo 8. + Los floats también se convierten a ints, lo que significa que la + parte fraccionaria será truncada. Por ejemplo, la clave 8.7 se almacenará realmente bajo + 8. - Los bools son convertidos a ints también, es decir, la clave - &true; será almacenada bajo 1 + Los bools se convierten a ints también, es decir, la clave + &true; se almacenará realmente bajo 1 y la clave &false; bajo 0. - Null será convertido a una cadena vacía, es decir, la clave - null será almacenada bajo "". + Null se convertirá en una cadena vacía, es decir, la clave + null se almacenará realmente bajo "". @@ -122,8 +123,8 @@ var_dump($array1, $array2); - Si múltiples elementos en la declaración del array usan la misma clave, solo el último será - usado ya que todos los demás son sobrescritos. + Si múltiples elementos en la declaración del array usan la misma clave, solo el último + será usado, ya que todos los demás son sobrescritos. @@ -151,7 +152,7 @@ array(1) { ]]> - Como todas las claves en el ejemplo anterior son convertidas a 1, el valor será sobrescrito + Como todas las claves en el ejemplo anterior se convierten a 1, el valor será sobrescrito en cada nuevo elemento y el último valor asignado "d" es el único que queda. @@ -260,7 +261,7 @@ array(4) { ]]> - Como puede ver, el último valor "d" fue asignado con la clave + Como puede ver, el último valor "d" fue asignado a la clave 7. Esto es porque la clave entera más grande antes de eso era 6. @@ -280,13 +281,13 @@ $array = array( '1' => 'b', // el valor "a" será sobrescrito por "b" 1.5 => 'c', // el valor "b" será sobrescrito por "c" -1 => 'd', - '01' => 'e', // como esto no es una cadena entera, NO sobrescribirá la clave para 1 - '1.5' => 'f', // como esto no es una cadena entera, NO sobrescribirá la clave para 1 + '01' => 'e', // como esto no es una cadena entera no sobrescribirá la clave para 1 + '1.5' => 'f', // como esto no es una cadena entera no sobrescribirá la clave para 1 true => 'g', // el valor "c" será sobrescrito por "g" false => 'h', '' => 'i', null => 'j', // el valor "i" será sobrescrito por "j" - 'k', // el valor "k" es asignado con la clave 2. Esto es porque la clave entera más grande antes de eso era 1 + 'k', // el valor "k" se asigna a la clave 2. Esto es porque la clave entera más grande antes de eso era 1 2 => 'l', // el valor "k" será sobrescrito por "l" ); @@ -350,8 +351,7 @@ array(2) { Antes de PHP 8.3.0, asignar una clave entera negativa n asignaría - la siguiente clave a 0, el ejemplo anterior produciría - por lo tanto: + la siguiente clave a 0, el ejemplo anterior produciría por lo tanto: @@ -370,14 +370,14 @@ array(2) { - Accediendo a elementos de array con sintaxis de corchetes + Acceso a elementos de array con sintaxis de corchetes Los elementos de array pueden ser accedidos usando la sintaxis array[clave]. - Accediendo a elementos de array + Acceso a elementos de array - Antes de PHP 8.0.0, los corchetes y las llaves podían ser usados indistintamente + Antes de PHP 8.0.0, los corchetes y las llaves podían usarse indistintamente para acceder a elementos de array (por ejemplo, $array[42] y $array{42} harían lo mismo en el ejemplo anterior). La sintaxis de llaves fue deprecada a partir de PHP 7.4.0 y ya no es soportada a partir de PHP 8.0.0. @@ -438,12 +438,13 @@ var_dump($secondElement); Intentar acceder a una clave de array que no ha sido definida es lo mismo que acceder a cualquier otra variable no definida: se emitirá un mensaje de error de nivel E_WARNING - (nivel E_NOTICE antes de PHP 8.0.0) y el resultado será &null;. + (nivel E_NOTICE antes de PHP 8.0.0) y el + resultado será &null;. - La desreferenciación de array de un valor escalar que no es un string + Desreferenciar un valor escalar que no es un string produce &null;. Antes de PHP 7.4.0, esto no emitía un mensaje de error. A partir de PHP 7.4.0, esto emite E_NOTICE; a partir de PHP 8.0.0, esto emite E_WARNING. @@ -452,17 +453,17 @@ var_dump($secondElement); - Creando/modificando con sintaxis de corchetes + Creación/modificación con sintaxis de corchetes - Un array existente puede ser modificado asignando explícitamente valores - en él. + Un array existente puede ser modificado asignando valores + explícitamente en él. - Esto se hace asignando valores al array, especificando - la clave entre corchetes. La clave también puede ser omitida, resultando en un par vacío de - corchetes ([]). + Esto se hace asignando valores al array, especificando la + clave entre corchetes. La clave también puede ser omitida, resultando en un par de + corchetes vacíos ([]). @@ -473,22 +474,23 @@ $arr[] = valor; Si $arr no existe aún o está establecido a &null; o &false;, será creado, por lo que esto es - también una forma alternativa de crear un array. Sin embargo, esta práctica es - desaconsejada porque si $arr ya contiene - algún valor (por ejemplo, string de una variable de solicitud) entonces este - valor permanecerá en su lugar y [] puede en realidad representar - el operador de acceso a string. Siempre es mejor inicializar una variable mediante una asignación directa. + también una forma alternativa de crear un array. Sin embargo, esta práctica + está desaconsejada porque si $arr ya contiene + algún valor (por ejemplo, string de una variable de petición) entonces este + valor permanecerá en su lugar y [] podría en realidad representar + el operador de acceso a string. Siempre es mejor inicializar una variable mediante una + asignación directa. A partir de PHP 7.1.0, aplicar el operador de índice vacío en un string lanza un error fatal. - Anteriormente, el string era convertido silenciosamente a un array. + Anteriormente, el string se convertía silenciosamente a un array. A partir de PHP 8.1.0, crear un nuevo array a partir de un valor &false; está deprecado. - Crear un nuevo array a partir de valores &null; y no definidos sigue estando permitido. + Crear un nuevo array a partir de &null; y valores no definidos sigue estando permitido. @@ -499,7 +501,7 @@ $arr[] = valor; - Usando corchetes con arrays + Uso de corchetes con arrays - Como se mencionó anteriormente, si no se especifica una clave, se toma el máximo de los índices - int existentes, y la nueva clave será ese valor máximo más 1 (pero al menos 0). Si no existen índices - int aún, la clave será 0 (cero). + Como se mencionó anteriormente, si no se especifica ninguna clave, se toma el máximo de los + índices int existentes, y la nueva clave será ese valor máximo + más 1 (pero al menos 0). Si no existen índices int aún, la clave será + 0 (cero). - Tenga en cuenta que el índice entero máximo usado para esto no necesita - existir actualmente en el array. Solo necesita haber + Tenga en cuenta que el índice entero máximo usado para esto no + necesita existir actualmente en el array. Solo necesita haber existido en el array en algún momento desde la última vez que el array fue reindexado. El siguiente ejemplo lo ilustra: @@ -603,7 +606,7 @@ Array - Desestructuración de arrays + Desestructuración de array - Desestructuración de arrays en foreach + Desestructuración de array en foreach - Los elementos del array serán ignorados si la variable no es proporcionada. La desestructuración de arrays - siempre comienza en el índice 0. + Los elementos del array serán ignorados si la variable no está proporcionada. La + desestructuración de array siempre comienza en el índice 0. - Ignorando elementos + Ignorar elementos A partir de PHP 7.1.0, los arrays asociativos también pueden ser desestructurados. Esto también - permite una selección más fácil del elemento correcto en arrays indexados numéricamente ya que el índice puede ser especificado explícitamente. + permite una selección más fácil del elemento correcto en arrays indexados numéricamente, ya que el índice puede ser especificado explícitamente. @@ -692,11 +695,11 @@ echo $baz, PHP_EOL; // imprime "baz" - La desestructuración de arrays puede ser usada para un intercambio fácil de dos variables. + La desestructuración de arrays puede ser usada para intercambiar fácilmente dos variables. - Intercambiando dos variables + Intercambio de dos variables - El operador de propagación (...) no es soportado en asignaciones. + El operador de propagación (...) no está soportado en asignaciones. @@ -723,7 +726,13 @@ echo $b, PHP_EOL; // imprime 1 Intentar acceder a una clave de array que no ha sido definida es lo mismo que acceder a cualquier otra variable no definida: se emitirá un mensaje de error de nivel E_WARNING - (nivel E_NOTICE antes de PHP 8.0.0) y el resultado será &null;. + (nivel E_NOTICE antes de PHP 8.0.0) y el + resultado será &null;. + + + + + Desestructurar un valor escalar asigna &null; a todas las variables. @@ -748,7 +757,7 @@ echo $b, PHP_EOL; // imprime 1 - Eliminando elementos intermedios + Eliminación de elementos intermedios - Qué hacer y qué no hacer con arrays + Lo que se debe y no se debe hacer con arrays ¿Por qué <literal>$foo[bar]</literal> está mal? @@ -787,7 +796,7 @@ var_dump($b); Siempre use comillas alrededor de un índice de array literal de cadena. Por ejemplo, $foo['bar'] es correcto, mientras que - $foo[bar] no lo es. Pero, ¿por qué? Es común encontrar este + $foo[bar] no lo es. Pero ¿por qué? Es común encontrar este tipo de sintaxis en scripts antiguos: @@ -805,15 +814,17 @@ echo $foo[bar]; Esto está mal, pero funciona. La razón es que este código tiene una constante no definida (bar) - en lugar de un string ('bar' - note las comillas). Funciona porque PHP - convierte automáticamente una cadena sin comillas (una cadena sin comillas que no - corresponde a ningún símbolo conocido) en un string que contiene la cadena sin comillas. - Por ejemplo, si no hay una constante definida llamada bar, entonces PHP - sustituirá la cadena 'bar' y la usará. + en lugar de un string ('bar' - note las + comillas). Funciona porque PHP convierte automáticamente una + cadena desnuda (una string sin comillas que no + corresponde a ningún símbolo conocido) en un string que + contiene la string desnuda. Por ejemplo, si no hay una constante + definida llamada bar, entonces PHP sustituirá la + string 'bar' y la usará. - La opción de tratar una constante no definida como una cadena sin comillas emite un error + La retrocompatibilidad para tratar una constante no definida como cadena desnuda emite un error de nivel E_NOTICE. Esto ha sido deprecado a partir de PHP 7.2.0, y emite un error de nivel E_WARNING. @@ -823,14 +834,14 @@ echo $foo[bar]; - Esto no significa que siempre se deban poner comillas a la clave. No - ponga comillas a las claves que son constantes o + Esto no significa que siempre deba poner comillas a la clave. No + ponga comillas a claves que son constantes o variables, ya que esto evitará que PHP las interprete. - Claves con comillas + Comillas en claves @@ -895,7 +906,7 @@ echo $arr['veggie'], PHP_EOL; // carrot // Incorrecto. Esto funciona pero también lanza un error de PHP debido a // una constante no definida llamada fruit // -// Error: Constante no definida "fruit" +// Error: Undefined constant "fruit" try { echo $arr[fruit]; // apple } catch (Error $e) { @@ -910,8 +921,8 @@ define('fruit', 'veggie'); echo $arr['fruit'], PHP_EOL; // apple echo $arr[fruit], PHP_EOL; // carrot -// Lo siguiente está bien, ya que está dentro de una cadena. Las constantes no son buscadas -// dentro de cadenas, por lo que no ocurre E_NOTICE aquí +// Lo siguiente está bien, ya que está dentro de una cadena. Las constantes no se buscan +// dentro de cadenas, por lo que no ocurre ningún E_NOTICE aquí echo "Hello $arr[fruit]", PHP_EOL; // Hello apple // Con una excepción: las llaves que rodean arrays dentro de cadenas permiten que las constantes @@ -931,7 +942,7 @@ echo "Hello " . $arr['fruit'], PHP_EOL; // Hello apple Cuando error_reporting está configurado para - mostrar errores de nivel E_NOTICE (configurándolo a - E_ALL, por ejemplo), tales usos se harán inmediatamente + mostrar errores de nivel E_NOTICE (estableciéndolo en + E_ALL, por ejemplo), estos usos se harán inmediatamente visibles. Por defecto, error_reporting está configurado para no - mostrar notificaciones. + mostrar avisos. - Como se establece en la sección de sintaxis, + Como se indica en la sección de sintaxis, lo que está dentro de los corchetes ('[' y ']') debe ser una expresión. Esto significa que el código como este funciona: @@ -967,7 +978,7 @@ echo $arr[somefunc($bar)]; - Este es un ejemplo de usar el valor de retorno de una función como índice del array. PHP + Este es un ejemplo de uso del valor de retorno de una función como índice del array. PHP también conoce las constantes: @@ -977,15 +988,15 @@ echo $arr[somefunc($bar)]; ]]> - Note que E_ERROR también es un identificador válido, al igual que - bar en el primer ejemplo. Pero el último ejemplo es de hecho + Tenga en cuenta que E_ERROR también es un identificador válido, al igual que + bar en el primer ejemplo. Pero el último ejemplo es en realidad lo mismo que escribir: @@ -995,7 +1006,7 @@ $error_descriptions[E_NOTICE] = "Esto es solo una notificación informal"; ]]> @@ -1018,9 +1029,9 @@ $error_descriptions[8] = "Esto es solo una notificación informal"; - Para reiterar, dentro de una cadena entre comillas dobles, es válido - no rodear los índices de array con comillas, por lo que "$foo[bar]" - es válido. Vea los ejemplos anteriores para más detalles sobre por qué, así como la sección + Para reiterar, dentro de una string entre comillas dobles, es válido no + rodear los índices de array con comillas, por lo que "$foo[bar]" + es válido. Consulte los ejemplos anteriores para más detalles, así como la sección sobre análisis de variables en cadenas. @@ -1044,13 +1055,14 @@ $error_descriptions[8] = "Esto es solo una notificación informal"; Si un object es convertido a un array, el resultado - es un array cuyos elementos son las propiedades del object. + es un array cuyos elementos son las + propiedades del object. Las claves son los nombres de las variables miembro, con algunas excepciones notables: las propiedades enteras son inaccesibles; - las variables privadas tienen el nombre de la clase antepuesto al nombre de la variable; - las variables protegidas tienen un '*' antepuesto al nombre de la variable. Estos - valores antepuestos tienen bytes NUL en ambos lados. + las variables privadas tienen el nombre de la clase antepuesto al nombre de la + variable; las variables protegidas tienen un '*' antepuesto al nombre de la variable. Estos + valores antepuestos tienen bytes NUL a ambos lados. Las propiedades tipadas - no inicializadas son descartadas silenciosamente. + no inicializadas se descartan silenciosamente. @@ -1108,10 +1120,10 @@ class B extends A { var_dump((array) new B()); ?> ]]> - - &example.outputs; - - + &example.outputs; + + NULL @@ -1121,12 +1133,12 @@ array(3) { NULL } ]]> - + - Lo anterior parecerá tener dos claves llamadas 'AA', aunque una de ellas está - realmente llamada '\0A\0A'. + Lo anterior parecerá tener dos claves llamadas 'AA', aunque una de ellas + en realidad se llama '\0A\0A'. @@ -1140,7 +1152,7 @@ array(3) { Es posible comparar arrays con la función array_diff - y con los + y con operadores de array. @@ -1159,7 +1171,7 @@ array(3) { Es posible expandir múltiples veces, y añadir elementos normales antes o después del operador ...: - Desempaquetado simple de arrays + Desempaquetado de array simple - El desempaquetado de un array con el operador ... sigue la semántica de la función array_merge. - Es decir, las claves de cadena posteriores sobrescriben las anteriores y las claves enteras son renumeradas: + Desempaquetar un array con el operador ... sigue la semántica de la función array_merge. + Es decir, las claves de cadena posteriores sobrescriben las anteriores y las claves enteras se renumeran: - Desempaquetado de arrays con clave duplicada + Desempaquetado de array con clave duplicada 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6] -// donde las claves enteras originales no han sido retenidas. +// donde las claves enteras originales no se han conservado. ?> ]]> @@ -1213,13 +1225,13 @@ var_dump($arr6); // [1, 2, 3, 4, 5, 6] - Las claves que no son ni enteras ni cadenas lanzan un TypeError. + Las claves que no son ni enteros ni cadenas lanzan un TypeError. Tales claves solo pueden ser generadas por un objeto Traversable. - Antes de PHP 8.1, el desempaquetado de un array que tiene una clave de cadena no es soportado: + Antes de PHP 8.1, el desempaquetado de un array que tiene una clave de cadena no está soportado: @@ -1229,7 +1241,7 @@ var_dump($arr6); // [1, 2, 3, 4, 5, 6] $arr1 = [1, 2, 3]; $arr2 = ['a' => 4]; $arr3 = [...$arr1, ...$arr2]; -// Error fatal: Error no capturado: No se puede desempaquetar un array con claves de cadena en example.php:5 +// Fatal error: Uncaught Error: Cannot unpack array with string keys in example.php:5 $arr4 = [1, 2, 3]; $arr5 = [4, 5]; @@ -1250,7 +1262,7 @@ $arr6 = [...$arr4, ...$arr5]; // funciona. [1, 2, 3, 4, 5] - Versatilidad de arrays + Versatilidad de los arrays 'red', 'taste' => 'sweet', 'shape' => 'round', // 'name' => 'apple', 0 => 4), y $b será el array // array(0 => 'a', 1 => 'b', 2 => 'c'), o simplemente array('a', 'b', 'c'). @@ -1291,11 +1303,11 @@ var_dump($a, $b); - Usando array() + Uso de array() 4, 'OS' => 'Linux', 'lang' => 'english', @@ -1377,15 +1389,15 @@ $colors = array('red', 'blue', 'green', 'yellow'); foreach ($colors as &$color) { $color = mb_strtoupper($color); } -unset($color); /* asegurar que las siguientes escrituras a +unset($color); /* asegúrese de que las escrituras siguientes a $color no modificarán el último elemento del array */ print_r($colors); ?> ]]> - - &example.outputs; - + + &example.outputs; + YELLOW ) ]]> - + @@ -1411,9 +1423,9 @@ $firstquarter = array(1 => 'January', 'February', 'March'); print_r($firstquarter); ?> ]]> - - &example.outputs; - + + &example.outputs; + March ) ]]> - + - Llenando un array + Llenar un array ]]> - + Los arrays están ordenados. El orden puede ser cambiado usando varias - funciones de ordenamiento. Vea la sección de funciones de array + funciones de ordenación. Vea la sección de funciones de array para más información. La función count puede ser usada para contar el número de elementos en un array. - Ordenando un array + Ordenar un array ]]> - + @@ -1501,11 +1513,11 @@ $juices["apple"]["green"] = "good"; var_dump($juices); ?> ]]> - + - La asignación de array siempre implica la copia de valores. Use el + La asignación de array siempre implica una copia de valores. Use el operador de referencia para copiar un array por referencia. @@ -1521,12 +1533,12 @@ $arr2[] = 4; // $arr2 es cambiado, // $arr1 sigue siendo array(2, 3) $arr3 = &$arr1; -$arr3[] = 4; // ahora $arr1 y $arr3 son los mismos +$arr3[] = 4; // ahora $arr1 y $arr3 son iguales var_dump($arr1, $arr2, $arr3); ?> ]]> - + diff --git a/reference/apcu/functions/apcu-entry.xml b/reference/apcu/functions/apcu-entry.xml index eeeda6fde..71cd15115 100644 --- a/reference/apcu/functions/apcu-entry.xml +++ b/reference/apcu/functions/apcu-entry.xml @@ -5,7 +5,7 @@ apcu_entry - Recupera o genera de forma atómica una entrada en caché + Recupera o genera de forma atómica una entrada de caché @@ -17,20 +17,21 @@ intttl0 - Intenta de forma atómica encontrar key en la caché, si no se puede encontrar se llama a callback, - pasando key como único argumento. El valor de retorno de la llamada se almacena en caché con el ttl opcionalmente especificado, - y se devuelve. + Intenta de forma atómica encontrar key en la caché; si no se encuentra, se llama a callback, + pasando key como único argumento. El valor de retorno de la llamada se almacena en caché con el ttl + especificado opcionalmente y se devuelve. - Cuando el control entra en apcu_entry se adquiere el bloqueo para la caché de forma exclusiva, se libera cuando el control sale de apcu_entry: - En efecto, esto convierte el cuerpo de callback en una sección crítica, impidiendo que dos procesos ejecuten las mismas rutas de código concurrentemente. - Además, prohíbe la ejecución concurrente de cualquier otra función de APCu, ya que adquirirán el mismo bloqueo. + Cuando el control entra en apcu_entry, se adquiere de forma exclusiva el bloqueo de la caché, que se libera cuando el control + sale de apcu_entry. En efecto, esto convierte el cuerpo de callback en una sección crítica, impidiendo que + dos procesos ejecuten las mismas rutas de código concurrentemente. Además, prohíbe la ejecución concurrente de cualquier otra función de APCu, + ya que adquirirán el mismo bloqueo. - La única función de APCu que puede ser llamada de forma segura por callback es apcu_entry. + La única función de APCu que puede llamarse de forma segura desde callback es apcu_entry. @@ -42,7 +43,7 @@ key - Identidad de la entrada en caché + Identificador de la entrada de caché @@ -58,13 +59,13 @@ ttl - Tiempo de Vida; almacena var en la caché durante + Tiempo de vida; almacena var en la caché durante ttl segundos. Después de que - ttl haya pasado, la variable almacenada será + ttl haya transcurrido, la variable almacenada será eliminada de la caché (en la siguiente petición). Si no se proporciona ttl (o si el ttl es - 0), el valor persistirá hasta que sea eliminado de - la caché manualmente, o deje de existir en la caché (limpieza, + 0), el valor persistirá hasta que se elimine manualmente de + la caché, o deje de existir en la caché (limpieza, reinicio, etc.). diff --git a/reference/array/functions/extract.xml b/reference/array/functions/extract.xml index bcef2e14b..7cdb1d7b8 100644 --- a/reference/array/functions/extract.xml +++ b/reference/array/functions/extract.xml @@ -1,12 +1,10 @@ - - + - extract - Importa las variables en la tabla de símbolos + Importa variables al símbolo actual desde un array &reftitle.description; @@ -17,18 +15,16 @@ stringprefix"" - Importa las variables en la - tabla de símbolos. + Importa variables desde un array a la tabla de símbolos actual. - extract verifica cada clave para controlar si tiene un nombre - de variable válido. También verifica las colisiones con variables - existentes en la tabla de símbolos. + Verifica cada clave para determinar si tiene un nombre de variable válido. + También verifica colisiones con variables existentes en la tabla de símbolos. - No utilice extract en datos no seguros como las entradas de usuario - (ex. $_GET, $_FILES). + No utilice extract con datos no confiables, como entrada de usuario + (ej. $_GET, $_FILES). @@ -40,16 +36,15 @@ array - Un array asociativo. Esta función crea las variables cuyos - nombres son los índices de este array, y les asigna el valor asociado. - Para cada par clave/valor, extract crea - una variable, con los parámetros flags - y prefix. + Un array asociativo. Esta función trata las claves como nombres de variables y + los valores como valores de variables. Para cada par clave/valor creará + una variable en la tabla de símbolos actual, sujeto a los parámetros + flags y prefix. - Debe utilizar un array asociativo. Un array indexado numéricamente - no producirá ningún resultado, a menos que se utilice la opción - EXTR_PREFIX_ALL o EXTR_PREFIX_INVALID. + Debe usar un array asociativo; un array indexado numéricamente + no producirá resultados a menos que use EXTR_PREFIX_ALL o + EXTR_PREFIX_INVALID. @@ -57,15 +52,15 @@ flags - El tratamiento de las colisiones es - determinado por flags. - Este parámetro puede tomar uno de los siguientes valores: + La forma en que se tratan las claves inválidas/numéricas y las colisiones se determina + por los flags de extracción. Puede ser uno de los + siguientes valores: EXTR_OVERWRITE - En caso de colisión, sobrescribir la variable existente. + Si hay una colisión, sobrescribe la variable existente. @@ -73,16 +68,16 @@ EXTR_SKIP - En caso de colisión, no sobrescribir la variable existente. + Si hay una colisión, no sobrescribe la variable + existente. EXTR_PREFIX_SAME - - En caso de colisión, añadir el prefijo prefix, - y crear una nueva variable. + Si hay una colisión, antepone el nombre de la variable con + prefix. @@ -90,7 +85,8 @@ EXTR_PREFIX_ALL - Añadir el prefijo prefix para todas las variables. + Antepone todos los nombres de variables con + prefix. @@ -98,8 +94,8 @@ EXTR_PREFIX_INVALID - Prefijar únicamente las variables con nombres inválidos o numéricos - con el prefijo prefix. + Solo antepone nombres de variables inválidas/numéricas con + prefix. @@ -107,11 +103,11 @@ EXTR_IF_EXISTS - Sobrescribir la variable únicamente si ya existe en la - tabla de símbolos, y, de lo contrario, no hacer nada. Esto es - práctico para definir una lista de variables válidas, y luego - extraer del array los valores que ya se han definido - gracias a $_REQUEST, por ejemplo. + Solo sobrescribe la variable si ya existe en la + tabla de símbolos actual, de lo contrario no hace nada. Esto es útil + para definir una lista de variables válidas y luego extraer + solo esas variables que ha definido de + $_REQUEST, por ejemplo. @@ -119,7 +115,7 @@ EXTR_PREFIX_IF_EXISTS - Crear solo variables prefijadas, si la versión no prefijada + Solo crea nombres de variables con prefijo si la versión sin prefijo de la misma variable existe en la tabla de símbolos actual. @@ -128,20 +124,19 @@ EXTR_REFS - Extraer las variables como referencias. Esto significa que - los valores de las variables importadas siempre hacen referencia a los - valores de las variables originales en el parámetro - array. Se puede utilizar esta - opción sola, o bien combinarla con otras opciones con - el operador OR, en el parámetro flags. + Extrae variables como referencias. Esto significa efectivamente que + los valores de las variables importadas aún hacen referencia a los valores del + parámetro array. Puede usar este flag + por sí solo o combinarlo con cualquier otro flag mediante OR con los + flags. - Si flags se omite, extract - utilizará EXTR_OVERWRITE por omisión. + Si flags no está especificado, se + asume que es EXTR_OVERWRITE. @@ -149,13 +144,13 @@ prefix - Tenga en cuenta que prefix solo es necesario para - los siguientes valores de flags: - EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, - EXTR_PREFIX_INVALID o EXTR_PREFIX_IF_EXISTS. - Si el resultado prefijado no es un nombre de variable válido, - no se importará en la tabla de símbolos. Los prefijos se separan automáticamente - del índice del array por un carácter de subrayado. + Tenga en cuenta que prefix solo es requerido si + flags es EXTR_PREFIX_SAME, + EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID + o EXTR_PREFIX_IF_EXISTS. Si + el resultado con prefijo no es un nombre de variable válido, no se + importará a la tabla de símbolos. Los prefijos se separan automáticamente de + la clave del array por un carácter de guión bajo. @@ -165,28 +160,17 @@ &reftitle.returnvalues; - Devuelve el número de variables importadas con éxito en la tabla - de símbolos. + Devuelve el número de variables importadas con éxito a la tabla de símbolos. - &reftitle.examples; - Ejemplo con <function>extract</function> - - Un uso posible de la función extract es la exportación - a la tabla de símbolos de arrays de variables devueltos - por wddx_deserialize. - + Ejemplo de <function>extract</function> "blue", @@ -208,14 +192,15 @@ blue, large, sphere, medium ]]> - La variable $size no fue sobrescrita, ya que se había especificado el parámetro EXTR_PREFIX_SAME, - que permitió la creación de $wddx_size. Si - EXTR_SKIP hubiera sido utilizado, entonces - $wddx_size no habría sido creado. - Con EXTR_OVERWRITE, $size - habría tomado el valor "medium", y con EXTR_PREFIX_ALL, - las variables creadas habrían sido $wddx_color, - $wddx_size y $wddx_shape. + La variable $size no fue sobrescrita porque especificamos + EXTR_PREFIX_SAME, lo que resultó en la creación de + $wddx_size. Si se hubiera especificado EXTR_SKIP, + entonces $wddx_size ni siquiera se habría creado. + EXTR_OVERWRITE habría hecho que $size tuviera + el valor "medium", y EXTR_PREFIX_ALL habría resultado en nuevas variables + llamadas $wddx_color, + $wddx_size, y + $wddx_shape. @@ -224,15 +209,15 @@ blue, large, sphere, medium &reftitle.notes; - No utilice extract en datos desconocidos, como - los datos de usuario (i.e. $_GET, - $_FILES, etc.). - Si lo hace, asegúrese de utilizar una de las constantes - flags que no sobrescriban los valores, como - EXTR_SKIP. Tenga en cuenta también que ahora - debe extraer en el mismo orden que el definido en variables_order del &php.ini;. + No utilice extract con datos no confiables, como + entrada de usuario + (ej. $_GET, $_FILES, etc.). + Si lo hace, asegúrese de usar uno de los valores de + flags que no sobrescriban, como + EXTR_SKIP y tenga en cuenta que debe extraer + en el mismo orden que está definido en + variables_order dentro del + &php.ini;. diff --git a/reference/array/functions/list.xml b/reference/array/functions/list.xml index c672e144f..134fbf1c2 100644 --- a/reference/array/functions/list.xml +++ b/reference/array/functions/list.xml @@ -1,8 +1,6 @@ - + - - list @@ -16,24 +14,36 @@ mixedvars - Al igual que array, list no es una - función real, sino un elemento de lenguaje, que permite agrupar - las variables varname, ... - en forma de array, para asignarlas en una sola línea. - Las strings no pueden ser desestructuradas y las expresiones - list no pueden estar completamente vacías. + Al igual que array, esto no es realmente una función, + sino una construcción del lenguaje. list se utiliza para + asignar una lista de variables en una sola operación. + Solo se pueden desempaquetar arrays y objetos que implementen ArrayAccess. + Las expresiones list no pueden estar completamente vacías. - Antes de PHP 7.1.0, list solo funciona con arrays - de índices numéricos y asume que el índice numérico comienza en 0. + Antes de PHP 7.1.0, list solo funcionaba con arrays numéricos y asumía + que los índices numéricos comenzaban en 0. - A partir de PHP 7.1.0, list también puede contener claves explícitas, permitiendo así la - desestructuración de arrays con claves no enteras o no secuenciales. Para más detalles sobre - la desestructuración de arrays, ver la sección sobre la desestructuración de arrays. + A partir de PHP 7.1.0, list también puede contener claves explícitas, permitiendo + la desestructuración de arrays con claves no enteras o no secuenciales. Para más detalles sobre + la desestructuración de arrays, consulte la sección de desestructuración de arrays. + + + Intentar acceder a una clave de array que no ha sido definida es + lo mismo que acceder a cualquier otra variable no definida: + se emitirá un mensaje de error de nivel E_WARNING + (nivel E_NOTICE antes de PHP 8.0.0) y + el resultado será &null;. + + + Intentar desempaquetar un escalar asigna &null; a todas las variables. + Intentar desempaquetar un objeto que no implementa ArrayAccess es un error fatal. + + &reftitle.parameters; @@ -81,16 +91,14 @@ 7.3.0 - Se añadió el soporte para la asignación por referencia en la desestructuración - de arrays. + Se añadió soporte para asignaciones por referencia en la desestructuración de arrays. 7.1.0 - Ahora es posible especificar claves en - list. Esto permite desestructurar arrays - con claves no enteras o no secuenciales. + Ahora es posible especificar claves en list. Esto + permite la desestructuración de arrays con claves no enteras o no secuenciales. @@ -102,22 +110,22 @@ &reftitle.examples; - Ejemplo con <function>list</function> + Ejemplos de <function>list</function> - Ejemplo de uso de <function>list</function> + Un ejemplo de uso de <function>list</function> fetch(PDO::FETCH_NUM)) { - Uso de un sub-<function>list</function> + Uso de <function>list</function> anidado - El orden en el que se definen los índices de un array a procesar por - list no es relevante. + El orden en el que se definen los índices del array a ser consumido por + list es irrelevante. - <function>list</function> y el orden de definición de los índices + <function>list</function> y el orden de las definiciones de índices - Dado el siguiente resultado (note el orden de los elementos comparados - y en qué orden se escribieron en la sintaxis - de la list) : + Produce la siguiente salida (note el orden de los elementos comparado con + el orden en que fueron escritos en la sintaxis list): A partir de PHP 7.1.0 list ahora también puede contener claves explícitas, que pueden ser dadas como expresiones arbitrarias. - La mezcla de claves &integer; y &string; está permitida; Sin embargo, los elementos - con y sin claves no pueden mezclarse. + Se permite mezclar claves enteras y string; sin embargo, no se pueden mezclar + elementos con y sin claves. + &reftitle.seealso; diff --git a/reference/dio/functions/dio-tcsetattr.xml b/reference/dio/functions/dio-tcsetattr.xml index 3c6ea93dd..afe0387a1 100644 --- a/reference/dio/functions/dio-tcsetattr.xml +++ b/reference/dio/functions/dio-tcsetattr.xml @@ -1,11 +1,11 @@ - - + + dio_tcsetattr - Establece los atributos terminales y la tasa de baudios del puerto serie + Establece los atributos de terminal y la velocidad de transmisión para un puerto serie @@ -16,8 +16,8 @@ arrayoptions - dio_tcsetattr establece los atributos terminales y la - tasa de baudios del fichero fd. + dio_tcsetattr establece los atributos de terminal y la velocidad de + transmisión del fd abierto. @@ -28,7 +28,7 @@ fd - Descriptor de fichero devuelto por dio_open. + El descriptor de fichero devuelto por dio_open. @@ -36,11 +36,11 @@ options - Las siguientes opciones están disponibles: + Las opciones disponibles actualmente son: - 'baud' - tasa de baudios del puerto - puede ser 38400,19200,9600,4800,2400,1800, + 'baud' - velocidad de transmisión del puerto - puede ser 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 o 50, el valor por omisión es 9600. @@ -56,7 +56,7 @@ - 'parity' - paridad - puede ser 0,1 o 2. El valor por omisión es 0. + 'parity' - puede ser 0,1 o 2. El valor por omisión es 0. @@ -74,10 +74,9 @@ &reftitle.examples; - - - Asignando la tasa de baudios del puerto serie - + + Establecer la velocidad de transmisión en un puerto serie + 9600, - 'bits' => 8, - 'stop' => 1, - 'parity' => 0 -)); + 'baud' => 9600, + 'bits' => 8, + 'stop' => 1, + 'parity' => 0 +)); -while (1) { - - $data = dio_read($fd, 256); - - if ($data) { - echo $data; - } -} +while (true) { + $data = dio_read($fd, 256); + if ($data !== null && $date !== '') { + echo $data; + } +} ?> ]]> - - - + + @@ -113,7 +109,6 @@ while (1) { ¬e.no-windows; - - + enchant_broker_request_dict - Crea un nuevo diccionario + Crear un nuevo diccionario usando una etiqueta &reftitle.description; @@ -15,9 +14,8 @@ stringtag - Crea un nuevo diccionario utilizando el argumento tag, - que representa el idioma para el cual se desea asociar el diccionario - ("en_US", "de_DE", ...). + crea un nuevo diccionario usando una etiqueta, la etiqueta de idioma no vacía que + desea solicitar para un diccionario ("en_US", "de_DE", ...) @@ -29,7 +27,7 @@ tag - Una etiqueta que describe el idioma, por ejemplo, en_US, de_DE + Una etiqueta que describe la configuración local, por ejemplo en_US, de_DE @@ -59,8 +57,8 @@ 8.0.0 - En caso de éxito, esta función devuelve ahora una instancia de EnchantDictionary ; - anteriormente se devolvía un &resource;. + En caso de éxito, esta función devuelve ahora una instancia de EnchantDictionary; + anteriormente, se devolvía un &resource;. @@ -70,26 +68,25 @@ &reftitle.examples; - - - Ejemplo con <function>enchant_broker_request_dict</function> - - Verifica si existe un diccionario utilizando la función - enchant_broker_dict_exists y lo solicita. - - + + Un ejemplo de <function>enchant_broker_request_dict</function> + + Comprueba si existe un diccionario usando + enchant_broker_dict_exists y solicítalo. + + ]]> - - - + + diff --git a/reference/enchant/functions/enchant-dict-add.xml b/reference/enchant/functions/enchant-dict-add.xml index 357bee4ba..4f4ae827f 100644 --- a/reference/enchant/functions/enchant-dict-add.xml +++ b/reference/enchant/functions/enchant-dict-add.xml @@ -1,11 +1,10 @@ - - - + + enchant_dict_add - Add a word to personal word list + Añadir una palabra a la lista personal de palabras &reftitle.description; @@ -15,7 +14,7 @@ stringword - Añadir una palabra a la lista de palabras personalizadas del diccionario dado. + Añade una palabra a la lista personal de palabras del diccionario dado. @@ -40,7 +39,7 @@ &return.success; - + &reftitle.changelog; @@ -61,7 +60,7 @@ &reftitle.examples; - Agregar una palabra a una PWL + Añadir una palabra a una PWL ]]> diff --git a/reference/enchant/functions/enchant-dict-describe.xml b/reference/enchant/functions/enchant-dict-describe.xml index f401509bd..4042ff459 100644 --- a/reference/enchant/functions/enchant-dict-describe.xml +++ b/reference/enchant/functions/enchant-dict-describe.xml @@ -1,11 +1,10 @@ - - + enchant_dict_describe - Describe un diccionario + Describe un diccionario individual &reftitle.description; @@ -14,7 +13,7 @@ EnchantDictionarydictionary - Devuelve los detalles de un diccionario. + Devuelve los detalles del diccionario. @@ -49,7 +48,7 @@ 8.0.0 - Antes de esta versión, esta función devolvía &false; en caso de fallo. + Antes de esta versión, la función devolvía &false; en caso de error. @@ -59,40 +58,38 @@ &reftitle.examples; - - - Ejemplo con <function>enchant_dict_describe</function> - - Verifica si un diccionario existe utilizando la función - enchant_broker_dict_exists y muestra todos los detalles concernientes a este diccionario. - - + + Ejemplo de <function>enchant_dict_describe</function> + + Comprueba si existe un diccionario usando + enchant_broker_dict_exists y muestra sus detalles. + + ]]> - - &example.outputs.similar; - + + &example.outputs.similar; + en_US [name] => aspell - [desc] => Aspell Provider + [desc] => Proveedor Aspell [file] => /usr/lib/enchant/libenchant_aspell.so ) ]]> - - - + + - + enchant_dict_suggest - Retorna una lista de valores si ninguna de las condiciones se cumple + Devolverá una lista de valores si no se cumplen alguna de las precondiciones &reftitle.description; @@ -26,7 +25,7 @@ word - Palabra a utilizar para las sugerencias + Palabra para la que se generarán sugerencias. @@ -36,7 +35,7 @@ &reftitle.returnvalues; - Retorna un array de sugerencias si la palabra está mal escrita. + Devuelve un array de sugerencias si la palabra está mal escrita. @@ -59,10 +58,9 @@ &reftitle.examples; - - - Ejemplo con <function>enchant_dict_suggest</function> - + + Ejemplo de uso de <function>enchant_dict_suggest</function> + ]]> - - - + + diff --git a/reference/filter/constants.xml b/reference/filter/constants.xml index 2c9c8f764..ba670c830 100644 --- a/reference/filter/constants.xml +++ b/reference/filter/constants.xml @@ -1,16 +1,15 @@ - - - + + &reftitle.constants; &extension.constants; - Constantes de Input + Constantes de entrada - Estas constantes son usadas por + Estas constantes son utilizadas por filter_input y filter_input_array. @@ -96,7 +95,7 @@ - Flags de filtros genéricos + Flags genéricos de filtro FILTER_FLAG_NONE @@ -115,7 +114,7 @@ - Flag usado para requerir un escalar como entrada. + Flag utilizado para requerir que la entrada del filtro sea un escalar. @@ -126,7 +125,7 @@ - Flag usado para requerir ru la entrada sea un array. + Flag utilizado para requerir que la entrada del filtro sea un array. @@ -137,8 +136,8 @@ - Este flag envuelve las entradas escalares en un array de un solo elemento - para los filtros que operan en arrays. + Este flag envuelve las entradas escalares en un array de un elemento + para filtros que operan sobre arrays. @@ -149,7 +148,7 @@ - Devuelve &null; en vez de &false; en caso de fallo. + Usar &null; en lugar de &false; en caso de fallo. Utilizable con cualquier filtro de validación @@ -160,7 +159,7 @@ - Flags para filtros de saneamiento + Flags de filtro de saneamiento FILTER_FLAG_STRIP_LOW @@ -168,7 +167,7 @@ - Elimina caracteres con un valor ASCII inferior a 32. + Elimina caracteres con valor ASCII menor que 32. @@ -179,7 +178,7 @@ - Elimina caracteres con un valor ASCII superior a 127. + Elimina caracteres con valor ASCII mayor que 127. @@ -190,7 +189,7 @@ - Elimina los caracteres de acento grave (`). + Elimina caracteres de comilla invertida (`). @@ -201,7 +200,7 @@ - Codifica caracteres con un valor ASCII inferior a 32. + Codifica caracteres con valor ASCII menor que 32. @@ -212,7 +211,7 @@ - Codifica caracteres con un valor ASCII superior a 127. + Codifica caracteres con valor ASCII mayor que 127. @@ -235,7 +234,7 @@ Las comillas simples y dobles (' y ") - no se codificarán. + no serán codificadas. @@ -248,14 +247,14 @@ Si el saneamiento de un string resulta en un string vacío, - convierte el valor a &null;. + convierte el valor a &null; - Filtros de Validación + Filtros de validación @@ -277,9 +276,9 @@ "". - El valor devuelto para valores no booleanos depende de + El valor de retorno para valores no booleanos depende de FILTER_NULL_ON_FAILURE. - Si está establecido, se devolverá &null;, de lo contrario se devolverá &false;. + Si está configurado, se devuelve &null;, de lo contrario se devuelve &false;. Opciones disponibles @@ -287,7 +286,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -306,8 +305,8 @@ &Alias; FILTER_VALIDATE_BOOL. - El alias estaba disponible antes de la introducción de su nombre - canónico en PHP 8.0.0. + El alias estaba disponible antes de la introducción de su nombre canónico + en PHP 8.0.0. @@ -319,8 +318,8 @@ - Valida cuando el valor es un entero, - en caso de éxito es convertido al tipo int. + Valida si el valor es un entero, + en caso de éxito se convierte al tipo int. @@ -336,7 +335,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -344,7 +343,7 @@ min_range - El valor es válido solo si es mayor o igual al valor proporcionado. + El valor solo es válido si es mayor o igual que el valor proporcionado. @@ -352,7 +351,7 @@ max_range - El valor es válido solo si es menor o igual al valor proporcionado. + El valor solo es válido si es menor o igual que el valor proporcionado. @@ -395,8 +394,8 @@ - Valida cuando un valor es un float, - en caso de éxito es convertido al tipo float. + Valida si el valor es un float, + en caso de éxito se convierte al tipo float. @@ -412,7 +411,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -428,7 +427,7 @@ min_range - El valor es válido solo si es mayor o igual al valor proporcionado. + El valor solo es válido si es mayor o igual que el valor proporcionado. Disponible a partir de PHP 7.4.0. @@ -437,7 +436,7 @@ max_range - El valor es válido solo si es menor o igual al valor proporcionado. + El valor solo es válido si es menor o igual que el valor proporcionado. Disponible a partir de PHP 7.4.0. @@ -452,8 +451,8 @@ - Acepta commas (,), - que usualmente representan el separador de miles. + Acepta comas (,), + que normalmente representan el separador de miles. @@ -467,7 +466,7 @@ - Valida un valor contra la expresión regular proporcionada por la + Valida el valor contra la expresión regular proporcionada por la opción regexp. @@ -477,7 +476,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -485,7 +484,7 @@ regexp - Expresión regular compatible con Perl + Expresión regular compatible con Perl. @@ -500,7 +499,7 @@ - Valida si el valor es una URL válida según + Valida si el nombre de URL es válido según RFC 2396. @@ -509,13 +508,13 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. - Optional Flags + Flags opcionales FILTER_FLAG_SCHEME_REQUIRED @@ -523,14 +522,14 @@ - Requiere que la URL contenga una parte de esquema (scheme). + Requiere que la URL contenga una parte de esquema. OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0. - Esto es porque siempre es implícito por el filtro - FILTER_VALIDATE_URL. + Esto se debe a que siempre está implícito por el + filtro FILTER_VALIDATE_URL. @@ -548,8 +547,8 @@ OBSOLETO a partir de PHP 7.3.0 y ELIMINADO a partir de PHP 8.0.0. - Esto es porque siempre es implícito por el filtro - FILTER_VALIDATE_URL. + Esto se debe a que siempre está implícito por el + filtro FILTER_VALIDATE_URL. @@ -572,23 +571,23 @@ - Requiere que la URL contenga una parte de consulta (query). + Requiere que la URL contenga una parte de consulta. - Una URL válida no puede especificar el + Una URL válida puede no especificar el protocolo HTTP (http://). - Por lo tanto, se puede requerir una validación adicional para determinar si la + Por lo tanto, puede ser necesaria una validación adicional para determinar si la URL usa un protocolo esperado, - por ejemplo ssh:// o mailto:. + por ejemplo, ssh:// o mailto:. - Este filtro solo funciona en URLs ASCII. + Este filtro solo funciona con URLs ASCII. Esto significa que los Nombres de Dominio Internacionalizados (IDN) siempre serán rechazados. @@ -606,7 +605,8 @@ RFC 1034, RFC 1035, RFC 1123, - RFC 2732 y + RFC 2732, + y RFC 2181. @@ -615,7 +615,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -630,7 +630,7 @@ Requiere que los nombres de host comiencen con un carácter alfanumérico y contengan - solo alfanuméricos o guiones. + solo caracteres alfanuméricos o guiones. @@ -649,9 +649,10 @@ La validación se realiza contra la sintaxis addr-spec - en RFC 822. + en + RFC 822. Sin embargo, los comentarios, el plegado de espacios en blanco y los nombres de dominio sin puntos - no son compatibles, y por lo tanto serán rechazados. + no están soportados, y por lo tanto serán rechazados. @@ -660,7 +661,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -683,8 +684,8 @@ - La validación de correo electrónico es compleja y la única forma real de confirmar - que un correo electrónico es válido y existe es enviar un correo electrónico a la dirección. + La validación de correo electrónico es compleja y la única forma verdadera de confirmar que un correo electrónico + es válido y existe es enviar un correo electrónico a la dirección. @@ -697,7 +698,7 @@ - Valida si el valor es una dirección IP válida. + Valida el valor como dirección IP. Opciones disponibles @@ -705,13 +706,13 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. - Optional Flags + Flags opcionales FILTER_FLAG_IPV4 @@ -744,12 +745,12 @@ Deniega direcciones reservadas. - Estas son las rangos marcados como + Estos son los rangos que están marcados como Reserved-By-Protocol en RFC 6890. - En caso de IPv4 corresponde a los siguientes rangos: + Que para IPv4 corresponden a los siguientes rangos: 0.0.0.0/8 169.254.0.0/16 @@ -758,7 +759,7 @@ . - Y para IPv6 corresponde a los siguientes rangos: + Y para IPv6 corresponden a los siguientes rangos: ::1/128 ::/128 @@ -778,7 +779,7 @@ Deniega direcciones privadas. - En caso de IPv4 corresponde a los siguientes rangos: + Estas son direcciones IPv4 que están en los siguientes rangos: 10.0.0.0/8 172.16.0.0/12 @@ -799,9 +800,9 @@ Solo permite direcciones globales. - Estas pueden ser encontradas en + Estas se pueden encontrar en RFC 6890 - cuando el atributo Global es True. + donde el atributo Global es True. Disponible a partir de PHP 8.2.0. @@ -817,7 +818,7 @@ - Valida cuando el valor es una dirección MAC. + Valida si el valor es una dirección MAC. @@ -826,7 +827,7 @@ default - Valor a devolver en caso de fallo del filtro. + Valor a devolver en caso de que el filtro falle. @@ -848,8 +849,7 @@ Sin embargo, puede eliminar o codificar caracteres especiales si se usa junto con - los flags de saneamiento de filtro - FILTER_FLAG_STRIP_* + los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*. @@ -872,27 +872,26 @@ - Este filtro elimina las etiquetas y codifica en HTML las comillas dobles y simples. + Este filtro elimina etiquetas y codifica en HTML comillas dobles y simples. Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con - los flags de saneamiento de filtro - FILTER_FLAG_STRIP_* + los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*. - El comportamiento de codificación de comillas puede deshabilitarse usando el + El comportamiento de codificación de comillas puede desactivarse usando el flag de filtro FILTER_FLAG_NO_ENCODE_QUOTES. - OBSOLETO a partir de PHP 8.1.0, + Obsoleto a partir de PHP 8.1.0, use htmlspecialchars en su lugar. - La forma en que este filtro elimina las etiquetas no es equivalente a + La forma en que este filtro elimina etiquetas no es equivalente a strip_tags. @@ -909,7 +908,7 @@ - OBSOLETO a partir de PHP 8.1.0, + Obsoleto a partir de PHP 8.1.0, use htmlspecialchars en su lugar. @@ -922,17 +921,15 @@ - Este filtro codifica en URL un string. + Este filtro codifica una cadena en URL. Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con - los flags de saneamiento de filtro - FILTER_FLAG_STRIP_* + los flags de saneamiento de filtro FILTER_FLAG_STRIP_* y FILTER_FLAG_ENCODE_*. - FILTER_SANITIZE_SPECIAL_CHARS @@ -948,14 +945,13 @@ > & - y los caracteres con un valor ASCII menor a 32. + y caracteres con un valor ASCII menor que 32. - Opcionalmente puede eliminar o codificar caracteres especificados si se usa junto con - los flags de saneamiento de filtro - FILTER_FLAG_STRIP_*, - y puede codificar caracteres con un valor ASCII mayor a 127 usando - FILTER_FLAG_ENCODE_HIGH. + Opcionalmente puede eliminar caracteres especificados si se usa junto con + los flags de saneamiento de filtro FILTER_FLAG_STRIP_*, + y puede codificar caracteres con valor ASCII + mayor que 127 usando FILTER_FLAG_ENCODE_HIGH. @@ -967,19 +963,19 @@ Este filtro es equivalente a llamar a htmlspecialchars - con ENT_QUOTES establecido. + con ENT_QUOTES configurado. - El comportamiento de codificación de comillas puede deshabilitarse usando el + El comportamiento de codificación de comillas puede desactivarse usando el flag de filtro FILTER_FLAG_NO_ENCODE_QUOTES. - Igual que htmlspecialchars, este filtro es consciente de la + Al igual que htmlspecialchars, este filtro es consciente de la configuración INI default_charset. - Si se detecta una secuencia de bytes que compone un carácter inválido en el - conjunto de caracteres actual, se rechaza toda la cadena - devolviendo como resultado en una cadena vacía. + Si se detecta una secuencia de bytes que forma un carácter no válido + en el juego de caracteres actual, entonces toda la cadena es rechazada + resultando en que se devuelva una cadena vacía. @@ -991,7 +987,7 @@ - Sanea una cadena eliminando todo los caracteres excepto + Sanea la cadena eliminando todos los caracteres excepto letras latinas ([a-zA-Z]), dígitos ([0-9]), y los caracteres especiales @@ -1006,7 +1002,7 @@ - Sanea un string eliminando todos los caracteres excepto + Sanea la cadena eliminando todos los caracteres excepto letras latinas ([a-zA-Z]), dígitos ([0-9]), y los caracteres especiales @@ -1021,9 +1017,9 @@ - Sanea una cadena eliminando todo los caracteres excepto dígitos - ([0-9]), y los signos de más (+), - y menos (-). + Sanea la cadena eliminando todos los caracteres excepto dígitos + ([0-9]), signo más (+), + y signo menos (-). @@ -1034,13 +1030,13 @@ - Sanea una cadena eliminando todo los caracteres excepto dígitos - ([0-9]), signos de más (+), - y menos (-). + Sanea la cadena eliminando todos los caracteres excepto dígitos + ([0-9]), signo más (+), + y signo menos (-). - Optional Flags + Flags opcionales FILTER_FLAG_ALLOW_FRACTION @@ -1048,9 +1044,9 @@ - Acepta el carácter de punto ., - que usualmente representa el separador entre la parte entera - y fraccionaria. + Acepta el carácter punto (.), + que normalmente representa el separador entre las partes entera y + fraccionaria. @@ -1061,8 +1057,8 @@ - Acepta el carácter de coma ,, - que usualmente representa el separador de miles. + Acepta el carácter coma (,), + que normalmente representa el separador de miles. @@ -1078,12 +1074,10 @@ - - - Si la FILTER_FLAG_ALLOW_FRACTION no es usada, + Si no se usa el flag FILTER_FLAG_ALLOW_FRACTION, entonces el separador decimal es eliminado, alterando el valor recibido. @@ -1142,7 +1136,7 @@ string(5) "12.34" - Filtros definidos por el usuario + Filtro definido por el usuario FILTER_CALLBACK @@ -1151,12 +1145,12 @@ string(5) "12.34" Este filtro delega el filtrado a una función definida por el usuario. - El callable es pasado a través del + El callable se pasa a través del parámetro options como el valor asociado a la clave 'options'. - La función de filtrado debe tener la siguiente firma: + La retrollamada debe tener la siguiente firma: mixedcallback stringvalue @@ -1174,19 +1168,19 @@ string(5) "12.34" - El valor devuelto por la función de filtrado será el valor devuelto por + El valor devuelto por la retrollamada será el valor devuelto por la función de filtro invocada. Ejemplo de uso de <constant>FILTER_CALLBACK</constant> para validar - un nombre de usuario + un nombre de inicio de sesión = 5 && ctype_alnum($value)) { return $value; @@ -1194,11 +1188,11 @@ function validate_login($value): ?string return null; } -$login = "Inic1oDeSesi0nValido"; +$login = "val1dL0gin"; $filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']); var_dump($filtered_login); -$login = "Inic1o de sesión fa4lso"; +$login = "f&ke login"; $filtered_login = filter_var($login, FILTER_CALLBACK, ['options' => 'validate_login']); var_dump($filtered_login); ?> @@ -1207,15 +1201,15 @@ var_dump($filtered_login); &example.outputs; - Este filtro no puede ser usado con ningún otro flag de filtro, - e.g. FILTER_NULL_ON_FAILURE. + Este filtro no puede usarse con ningún otro flag de filtro, por ejemplo, + FILTER_NULL_ON_FAILURE. diff --git a/reference/hash/book.xml b/reference/hash/book.xml index 1e0e86fe2..bff1a70fd 100644 --- a/reference/hash/book.xml +++ b/reference/hash/book.xml @@ -1,63 +1,63 @@ - - + - - + - HASH + HASH Message Digest Framework Hash &reftitle.intro; - Esta extensión proporciona funciones que pueden ser utilizadas para el tratamiento directo o - incremental de mensajes de longitud arbitraria utilizando una variedad de algoritmos de hachado, - incluyendo la generación de valores HMAC y derivaciones de claves - incluyendo HKDF y PBKDF2. + Esta extensión proporciona funciones que pueden usarse para el procesamiento directo o + incremental de mensajes de longitud arbitraria utilizando una variedad de + algoritmos de hash, incluyendo la generación de valores HMAC + y derivaciones de claves incluyendo HKDF y + PBKDF2. - Existen grosso modo tres categorías de algoritmos de hachado, y una lista completa de - los algoritmos puede ser encontrada en la documentación para hash_algos. + Existen aproximadamente tres categorías de algoritmos de hash, y una lista completa de + algoritmos puede encontrarse en la documentación de hash_algos. - Algoritmos de suma de control (tales como "crc32b" o "adler32") : - Estos son utilizados para calcular sumas de control, útiles en situaciones tales como - la detección de errores de transmisión. Son frecuentemente muy rápidos. Estos - algoritmos generan frecuentemente valores fácilmente "adivinables" o pueden ser manipulados - para crear colisiones, por lo que son totalmente inadecuados para un uso criptográfico. + Algoritmos de suma de verificación (como "crc32b" o "adler32"): + Estos se utilizan para calcular sumas de verificación, útiles en situaciones como cuando + se deben detectar errores de transmisión. Suelen ser muy rápidos. Estos + algoritmos a menudo generan valores que son fácilmente "adivinables" o pueden ser manipulados + para crear colisiones, por lo que son completamente inadecuados para uso criptográfico. - Algoritmos no criptográficos (como la familia xxHash) : - Estos son frecuentemente utilizados para calcular valores de hachado para tablas de hachado, - ya que están diseñados para producir una buena distribución sobre entradas de string arbitrarias. - Son también generalmente rápidos, pero también inadecuados para un uso criptográfico. + Algoritmos no criptográficos (como la familia xxHash): + Estos se utilizan a menudo para calcular valores hash para tablas hash, ya que están + diseñados para ofrecer una buena distribución sobre entradas de string arbitrarias. También + suelen ser rápidos, pero no son adecuados para uso criptográfico. - Algoritmos criptográficos (como la familia SHA-2) : - Estos están diseñados para producir valores de hachado representativos de sus - entradas pero que no puedan ser adivinados ni sujetos a colisiones. El rendimiento es a menudo - una preocupación secundaria, pero el hardware moderno soporta frecuentemente un manejo especial + Algoritmos criptográficos (como la familia SHA-2): + Estos están diseñados para generar valores hash que sean representativos de sus + entradas pero que no sean adivinables ni propensos a colisiones. El rendimiento suele + ser una preocupación secundaria, pero el hardware moderno a menudo admite un manejo especial para estos algoritmos que PHP intenta utilizar cuando está disponible. - El Centro de Recursos para la Seguridad Informática del NIST tiene + El Centro de Recursos de Seguridad Informática del NIST tiene una explicación de los algoritmos - actualmente aprobados por los Estándares Federales de Procesamiento de Información de los Estados Unidos. + actualmente aprobados por los Estándares Federales de Procesamiento de Información + de los Estados Unidos. - Algunos de los primeros algoritmos criptográficos, tales como "md4", - "md5", y "sha1", se han demostrado - ser sujetos a ataques por colisión y generalmente se recomienda no utilizarlos más - para aplicaciones criptográficas. + Algunos de los primeros algoritmos criptográficos, como "md4", + "md5" y "sha1", han demostrado + ser propensos a ataques de colisión y generalmente se recomienda no + utilizarlos más para aplicaciones criptográficas. @@ -65,11 +65,10 @@ - Ver también la FAQ sobre el hachado seguro de contraseñas - para información sobre las mejores prácticas de utilización de las funciones de hachado en la gestión + Consulte también las preguntas frecuentes sobre el Hashing Seguro de Contraseñas + para obtener información sobre las mejores prácticas para el uso de funciones hash en el manejo de contraseñas. - diff --git a/reference/hash/functions/hash-hkdf.xml b/reference/hash/functions/hash-hkdf.xml index 90bc1fbc8..68bffe9fb 100644 --- a/reference/hash/functions/hash-hkdf.xml +++ b/reference/hash/functions/hash-hkdf.xml @@ -1,11 +1,10 @@ - - + hash_hkdf - Genera una derivación de clave HKDF desde una clave proporcionada + Genera una derivación de clave HKDF a partir de una clave de entrada proporcionada &reftitle.description; @@ -27,11 +26,11 @@ algo - Nombre del algoritmo de hash seleccionado (por ejemplo: "sha256"). - Para una lista de los algoritmos soportados ver hash_hmac_algos. + Nombre del algoritmo hash seleccionado (por ejemplo, "sha256"). + Para ver una lista de algoritmos soportados, consulte hash_hmac_algos. - Las funciones de hash no criptográficas no están permitidas. + No se permiten funciones hash no criptográficas. @@ -41,8 +40,7 @@ key - Datos (Input keying material) en binario que servirán para el clavetage. - No puede estar vacío. + Material de clave de entrada (binario sin tratar). No puede estar vacío. @@ -50,12 +48,12 @@ length - Longitud deseada de los datos de salida en octetos. - No puede ser mayor que 255 veces el tamaño de la función de hash. + Longitud deseada de la salida en bytes. + No puede ser mayor que 255 veces el tamaño de la función hash elegida. - Si length vale 0, la longitud de los - datos de salida será por defecto el tamaño de la función de hash elegida. + Si length es 0, la longitud de salida + será por omisión el tamaño de la función hash elegida. @@ -63,7 +61,7 @@ info - Información en forma de &string; específica de la aplicación/contexto. + String de información específica de la aplicación/contexto. @@ -71,11 +69,10 @@ salt - Sal a utilizar durante la derivación. + Salt a utilizar durante la derivación. - Aunque opcional, añadir una sal aleatoria aumenta significativamente la - robustez de HKDF. + Aunque es opcional, añadir un salt aleatorio mejora significativamente la robustez de HKDF. @@ -86,8 +83,8 @@ &reftitle.returnvalues; - Devuelve un &string; que contiene una representación binaria en bruto de la clave derivada - (también conocida como output keying material - OKM). + Devuelve un string que contiene una representación binaria sin tratar de la clave derivada + (también conocida como material de clave de salida - OKM). @@ -97,12 +94,12 @@ Lanza una excepción ValueError si key está vacío, algo es desconocido/no criptográfico, length es menor que 0 o demasiado grande - (mayor que 255 veces el tamaño de la función de hash). + (mayor que 255 veces el tamaño de la función hash). - &reftitle.changelog; + &reftitle.changelog; @@ -116,8 +113,9 @@ 8.0.0 - Lanza una excepción ValueError en caso de error a partir de ahora. - Anteriormente, se devolvía &false; y se emitía un mensaje E_WARNING. + Ahora lanza una excepción ValueError en caso de error. + Anteriormente, se devolvía &false; y se emitía un mensaje + E_WARNING. @@ -128,17 +126,22 @@ &reftitle.examples; + + El ejemplo siguiente produce un par de claves separadas, adecuadas para crear + una construcción de tipo encrypt-then-HMAC, utilizando AES-256 y SHA-256 para + cifrado y autenticación respectivamente. + - Ejemplo con <function>hash_hkdf</function> + Ejemplo de <function>hash_hkdf</function> ]]> - - El ejemplo anterior produce un par de claves separadas, que es adecuado para crear - una construcción cifrar-entonces-HMAC (encrypt-then-HMAC), utilizando AES-256 - y SHA-256 para el cifrado y la autenticación respectivamente. - @@ -161,7 +159,7 @@ var_dump($encryptionKey !== $authenticationKey); // bool(true) hash_pbkdf2 RFC 5869 - implementación en userland + implementación en espacio de usuario diff --git a/reference/hash/functions/hash-update-stream.xml b/reference/hash/functions/hash-update-stream.xml index 597126d7f..82397006d 100644 --- a/reference/hash/functions/hash-update-stream.xml +++ b/reference/hash/functions/hash-update-stream.xml @@ -1,10 +1,10 @@ - - + + hash_update_stream - Añade datos en un contexto de hash activo de un flujo abierto + Introduce datos en un contexto de hash activo desde un flujo abierto &reftitle.description; @@ -32,8 +32,7 @@ stream - Identificador de fichero abierto como devuelto por cualquier - función de creación de flujo. + Gestor de fichero abierto como el devuelto por cualquier función de creación de flujos. @@ -41,8 +40,8 @@ length - Tamaño máximo de caracteres a copiar de stream - en el contexto de hash. + Número máximo de caracteres a copiar desde stream + al contexto de hash. @@ -53,8 +52,7 @@ &reftitle.returnvalues; - Número actual de bytes añadidos al contexto de hash de - stream. + Número real de bytes añadidos al contexto de hash desde stream. @@ -73,7 +71,7 @@ 7.2.0 - Acepta una HashContext en lugar de un recurso. + Acepta HashContext en lugar de resource. @@ -86,7 +84,7 @@ &reftitle.examples; - Ejemplo con <function>hash_update_stream</function> + Ejemplo de <function>hash_update_stream</function> hash_init hash_update - hash_update_stream hash_final diff --git a/reference/intl/intlcalendar/fromdatetime.xml b/reference/intl/intlcalendar/fromdatetime.xml index de10ccb63..b7b7aaf97 100644 --- a/reference/intl/intlcalendar/fromdatetime.xml +++ b/reference/intl/intlcalendar/fromdatetime.xml @@ -1,10 +1,10 @@ - - + + IntlCalendar::fromDateTime - Crear un IntlCalendar desde un objeto DateTime o una cadena de caracteres + Crea un IntlCalendar a partir de un objeto DateTime o string @@ -26,16 +26,16 @@ stringnulllocale&null; - Crear un objeto IntlCalendar desde un objeto - DateTime o desde una cadena de caracteres que - puede ser utilizada para construir un objeto DateTime. + Crea un objeto IntlCalendar ya sea a partir de un + objeto DateTime o a partir de un string del cual se + puede construir un objeto DateTime. El nuevo calendario representará no solo el mismo instante que el - DateTime dado (sujeto a la pérdida de precisión - para fechas muy antiguas o futuras), sino también la misma zona horaria - (sujeto a la advertencia de que diferentes bases de datos de zonas horarias - serán utilizadas, y por lo tanto los resultados pueden diferir). + DateTime dado (sujeto a pérdida de precisión para fechas + muy lejanas en el pasado o futuro), sino también la misma zona horaria (sujeto + a la salvedad de que se usarán diferentes bases de datos de zonas horarias, y + por lo tanto los resultados pueden diferir). @@ -46,8 +46,8 @@ datetime - Un objeto DateTime o una string que - puede ser pasado a DateTime::__construct. + Un objeto DateTime o un string que + puede pasarse a DateTime::__construct. @@ -57,9 +57,9 @@ &reftitle.returnvalues; - El objeto IntlCalendar creado o &null; en caso de fallo. - Si una string es pasada, cualquier excepción que ocurra - dentro del constructor DateTime es propagada. + El objeto IntlCalendar creado o &null; en caso de + error. Si se pasa un string, cualquier excepción que ocurra + dentro del constructor de DateTime se propaga. @@ -73,10 +73,10 @@ diff --git a/reference/intl/numberformatter/format.xml b/reference/intl/numberformatter/format.xml index 8d0042e86..b4dae1428 100644 --- a/reference/intl/numberformatter/format.xml +++ b/reference/intl/numberformatter/format.xml @@ -1,11 +1,11 @@ - + NumberFormatter::format numfmt_format - Formatea un número + Formatear un número @@ -28,7 +28,7 @@ inttypeNumberFormatter::TYPE_DEFAULT - Formatea un valor numérico, según las reglas del formateador. + Formatea un valor numérico según las reglas del formateador. @@ -40,7 +40,7 @@ formatter - El objeto NumberFormatter. + Objeto NumberFormatter. @@ -48,9 +48,8 @@ num - El valor a formatear. Puede ser un int o - un float. Otros valores serán convertidos a - valor numérico antes del formateo. + El valor a formatear. Puede ser int o float, + otros valores serán convertidos a un valor numérico. @@ -58,9 +57,11 @@ type - El tipo de formato. - Tenga en cuenta que NumberFormatter::TYPE_CURRENCY no es soportado; - utilice NumberFormatter::formatCurrency en su lugar. + El + + tipo de formato a usar. + Tenga en cuenta que NumberFormatter::TYPE_CURRENCY no está soportado; + use NumberFormatter::formatCurrency en su lugar. @@ -71,36 +72,32 @@ &reftitle.returnvalues; - Devuelve la cadena que contiene el valor formateado, o &false; en caso de error. + Devuelve el string que contiene el valor formateado, o &false; en caso de error. &reftitle.examples; - Ejemplo con <function>numfmt_format</function>, &style.procedural; + Ejemplo de <function>numfmt_format</function> ]]> - Ejemplo con <function>numfmt_format</function>, estilo POO + Ejemplo POO format(1234567.891234567890000); -if(intl_is_failure($fmt->getErrorCode())) { - report_error("Error de formateador"); -} +$data = $fmt->format(1234567.891234567890000); +var_dump($data); ?> ]]> @@ -108,7 +105,7 @@ if(intl_is_failure($fmt->getErrorCode())) { &example.outputs; @@ -117,11 +114,11 @@ if(intl_is_failure($fmt->getErrorCode())) { &reftitle.notes; - Los formatos realizables por este método de formateo no pueden utilizar plenamente las posibilidades de - la biblioteca ICU subyacente, como por ejemplo el formateo de moneda con un símbolo monetario corto. + Los formatos alcanzables por este método de formateo no pueden utilizar completamente las posibilidades de la biblioteca ICU subyacente, + como por ejemplo formatear moneda con símbolo de moneda estrecho. - Para utilizarlas plenamente, utilice msgfmt_format_message. + Para utilizarlas completamente use msgfmt_format_message. diff --git a/reference/intl/numberformatter/get-error-code.xml b/reference/intl/numberformatter/get-error-code.xml index a26b634fd..a7be6ea8d 100644 --- a/reference/intl/numberformatter/get-error-code.xml +++ b/reference/intl/numberformatter/get-error-code.xml @@ -1,12 +1,11 @@ - + - NumberFormatter::getErrorCode numfmt_get_error_code - Lee el último código de error del formateador + Obtener el último código de error del formateador @@ -26,7 +25,7 @@ NumberFormatterformatter - Lee el código de error generado por la última función del formateador. + Obtiene el código de error de la última función ejecutada por el formateador. @@ -38,7 +37,7 @@ formatter - El objeto NumberFormatter. + Objeto NumberFormatter. @@ -56,28 +55,28 @@ &reftitle.examples; - Ejemplo con <function>numfmt_get_error_code</function>, &style.procedural; + Ejemplo de <function>numfmt_get_error_code</function> ]]> - Ejemplo con <function>numfmt_get_error_code</function>, estilo POO + Ejemplo OO format(1234567.891234567890000); -if(intl_is_failure($fmt->getErrorCode())) { - report_error("Error de formateador"); +if (intl_is_failure($fmt->getErrorCode())) { + echo 'Error del formateador'; } ?> ]]> diff --git a/reference/pgsql/functions/pg-lo-import.xml b/reference/pgsql/functions/pg-lo-import.xml index d2aafab74..7e5f1baff 100644 --- a/reference/pgsql/functions/pg-lo-import.xml +++ b/reference/pgsql/functions/pg-lo-import.xml @@ -1,12 +1,11 @@ - + + pg_lo_import - - Importa un objeto de gran tamaño desde un fichero - + Importa un objeto grande desde un fichero @@ -18,17 +17,17 @@ mixedobject_id - pg_lo_import crea un nuevo objeto de gran tamaño - en la base de datos utilizando un fichero en el sistema de ficheros - como datos de origen. + pg_lo_import crea un nuevo objeto grande + en la base de datos usando un fichero en el sistema de ficheros como + fuente de datos. - Para utilizar un objeto de gran tamaño (lo), es - necesario hacerlo dentro de una transacción. + Para usar la interfaz de objetos grandes, es necesario + encerrarla dentro de un bloque de transacción. - Anteriormente, esta función se llamaba pg_loimport. + Esta función antes se llamaba pg_loimport. @@ -47,8 +46,8 @@ pathname - La ruta de acceso completa y el fichero desde el cual se leerá - el objeto de gran tamaño en el sistema del cliente. + La ruta completa y nombre del fichero en el sistema de ficheros del cliente + desde el cual leer los datos del objeto grande. @@ -56,10 +55,10 @@ object_id - Si el argumento object_id es proporcionado, la función - intentará crear un objeto grande con este identificador, de lo contrario, un - identificador de objeto disponible será asignado por el servidor. - Este argumento depende de una funcionalidad que apareció con PostgreSQL 8.1. + Si se proporciona un object_id, la función + intentará crear un objeto grande con este ID, de lo contrario, el servidor + asignará un ID de objeto libre. Este parámetro depende de funcionalidad que + apareció por primera vez en PostgreSQL 8.1. @@ -70,7 +69,7 @@ &reftitle.returnvalues; - El OID del nuevo objeto de gran tamaño creado, &return.falseforfailure;. + El OID del objeto grande recién creado, &return.falseforfailure;. @@ -95,7 +94,7 @@ &reftitle.examples; - Ejemplo con <function>pg_lo_import</function> + Ejemplo de <function>pg_lo_import</function> - - + - posix_getrlimit @@ -16,8 +14,8 @@ intnullresource&null; - posix_getrlimit devuelve un &array; de información - sobre los límites soft y hard del recurso actual. + posix_getrlimit devuelve un array + con información sobre los límites actuales blandos y duros del recurso. &posix.rlimits; @@ -30,8 +28,10 @@ resource - Si &null;, se recuperan todos los límites de recursos. - De lo contrario, solo se devuelven los límites del tipo de recurso proporcionado. + Si es &null;, se devolverán todos los límites de recursos actuales. + De lo contrario, especifique la + constante de límite de recurso + para recuperar un límite específico. @@ -42,8 +42,8 @@ &reftitle.returnvalues; - Devuelve un &array; asociativo con elementos para cada límite definido. - Cada límite tiene un límite soft y hard. + Devuelve un array asociativo de elementos para cada + límite que esté definido. Cada límite tiene un límite blando y uno duro. Lista de límites posibles devueltos @@ -57,21 +57,20 @@ core - El tamaño máximo del archivo de núcleo. Cuando es 0, - no se crea ningún archivo de núcleo. Cuando el núcleo del archivo - es más grande que su tamaño, será truncado a este tamaño. + El tamaño máximo del fichero de memoria. Cuando es 0, no se crean ficheros de memoria. + Cuando los ficheros de memoria son más grandes que este tamaño, se truncarán a este tamaño. totalmem - El tamaño máximo de memoria del proceso, en bytes. + El tamaño máximo de la memoria del proceso, en bytes. virtualmem - El tamaño máximo de memoria virtual del proceso, en bytes. + El tamaño máximo de la memoria virtual para el proceso, en bytes. @@ -89,14 +88,14 @@ rss - El número máximo de páginas virtuales residentes en RAM. + El número máximo de páginas virtuales residentes en RAM maxproc - El número máximo de procesos que pueden ser creados para el ID - de usuario real del proceso llamado. + El número máximo de procesos que pueden ser creados para el + ID de usuario real del proceso llamante. @@ -108,7 +107,7 @@ cpu - El tiempo que el proceso está autorizado a usar la CPU. + La cantidad de tiempo que se permite al proceso usar la CPU. @@ -120,7 +119,7 @@ openfiles - El número máximo de punteros de archivos abiertos. + Uno más que el número máximo de descriptores de fichero abiertos. @@ -128,35 +127,35 @@
La función devuelve &false; en caso de error.
-
+
- + &reftitle.changelog; - - - - &Version; - &Description; - - - - - 8.3.0 - - Se añadió el parámetro opcional resource. - - - - + + + + &Version; + &Description; + + + + + 8.3.0 + + Se ha añadido el parámetro opcional resource. + + + + - + &reftitle.examples; - Ejemplo con <function>posix_getrlimit</function> + Ejemplo de uso de <function>posix_getrlimit</function> - página de manual GETRLIMIT(2) + página del manual GETRLIMIT(2) posix_setrlimit diff --git a/reference/random/book.xml b/reference/random/book.xml index 2d987d38d..bd0d55efd 100644 --- a/reference/random/book.xml +++ b/reference/random/book.xml @@ -1,9 +1,9 @@ - + - + - Generadores de números aleatorios y funciones relacionadas con la aleatoriedad. + Generadores de Números Aleatorios y Funciones Relacionadas con la Aleatoriedad Random diff --git a/reference/random/examples.xml b/reference/random/examples.xml index e191bd887..c86c2cd78 100644 --- a/reference/random/examples.xml +++ b/reference/random/examples.xml @@ -1,23 +1,45 @@ - + &reftitle.examples; - Ejemplo Random - + Ejemplo de aleatoriedad + getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16) +); +// Mezclar array: +$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ]; +echo "Ensalada: ", implode(', ', $r->shuffleArray($fruits)), "\n"; + +// Mezclar claves de array +$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ]; + +$keys = $r->pickArrayKeys($fruits, 2); +// Buscar los valores para las claves seleccionadas +$selection = array_map( + static fn ($key) => $fruits[$key], + $keys +); + +echo "Valores: ", implode(', ', $selection), "\n"; ?> ]]> &example.outputs.similar; - + diff --git a/reference/random/random/engine/mt19937/construct.xml b/reference/random/random/engine/mt19937/construct.xml index 2620e1924..6433a89f7 100644 --- a/reference/random/random/engine/mt19937/construct.xml +++ b/reference/random/random/engine/mt19937/construct.xml @@ -1,6 +1,6 @@ - - + + Random\Engine\Mt19937::__construct @@ -19,9 +19,6 @@ &caution.mt19937-tiny-seed; - - &warn.undocumented.func; - @@ -32,13 +29,13 @@ Rellena el estado con valores generados con un generador congruencial lineal - que ha sido inicializado con seed interpretado como un entero - sin signo de 32 bits. + que fue inicializado con seed interpretado como un + entero sin signo de 32 bits. - Si seed es omitido o &null;, se utilizará un entero sin signo aleatorio - de 32 bits. + Si seed se omite o es &null;, se utilizará un entero + sin signo de 32 bits aleatorio. @@ -46,7 +43,8 @@ mode - El uso de una de las constantes siguientes para especificar la implementación del algoritmo a utilizar. + Utilice una de las siguientes constantes para especificar la implementación + del algoritmo a usar. MT_RAND_MT19937: @@ -54,8 +52,8 @@ MT_RAND_PHP: - Una implementación incorrecta para la retrocompatibilidad con mt_srand antes de - PHP 7.1.0. + Una implementación incorrecta para compatibilidad con versiones anteriores + de mt_srand anterior a PHP 7.1.0. @@ -76,15 +74,14 @@ --> - &reftitle.examples; - + Ejemplo de <function>Random\Engine\Mt19937::__construct</function> - - + + Random\Engine\PcgOneseq128XslRr64::__construct @@ -16,9 +16,6 @@ - - &warn.undocumented.func; - @@ -28,8 +25,8 @@ seed - El estado interno de 128 bits (16 bytes) compuesto por un entero sin signo de 128 bits es - inicializado dependiendo del tipo utilizado como seed. + La forma en que se inicializa el estado interno de 128 bits (16 bytes) que consiste en un entero sin signo de 128 bits + depende del tipo utilizado como seed. @@ -42,7 +39,7 @@ null - Rellena el estado con 16 bytes aleatorios generados utilizando el CSPRNG. + Rellena el estado con 16 bytes aleatorios generados usando el CSPRNG. @@ -56,8 +53,8 @@ string - Rellena el estado interpretando una cadena de 16 bytes string como un entero sin signo - de 128 bits en little-endian. + Rellena el estado interpretando un string de 16 bytes como un entero sin signo de 128 bits + en orden little-endian. @@ -85,8 +82,8 @@ - Si la longitud de un string seed no es de 16 bytes, - se lanzará una ValueError. + Si la longitud de un string seed no es + de 16 bytes, se lanzará un ValueError. @@ -94,12 +91,12 @@ &reftitle.examples; - + Ejemplo de <function>Random\Engine\PcgOneseq128XslRr64::__construct</function> - Derivar una semilla de un &string; + Derivar una semilla a partir de un &string;