1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 07:22:16 +01:00
Files
Philippe DELENTE 9f7804a633 Feature/update revision en misc page reference (#248)
* feat(translation): update revision EN

* feat(translation): update revision EN
2025-07-02 22:37:23 +02:00

284 lines
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 45042fef652f1b4e904e809fcbfcf31f6c60670b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.sprintf" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>sprintf</refname>
<refpurpose>Devuelve una string formateada</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>sprintf</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam rep="repeat"><type>mixed</type><parameter>values</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve una string formateada, con el formato
<parameter>format</parameter>, utilizando los argumentos
<parameter>args</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&strings.parameter.format;
<varlistentry>
<term><parameter>values</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve una &string; creada siguiendo el formato
<parameter>format</parameter>.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&strings.errors.sprintf;
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
&strings.changelog.sprintf;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Intercambio de argumentos</title>
<para>
La string de formato soporta la numeración y el intercambio de argumentos.
</para>
<programlisting role="php">
<![CDATA[
<?php
$num = 5;
$location = 'bananero';
$format = 'Hay %d monos en el %s';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Hay 5 monos en el bananero
]]>
</screen>
</example>
<para>
Pero imagine que la string de formato sea creada en un script separado,
como una biblioteca: esto ocurre cuando se debe internacionalizar una
aplicación. Según el idioma, puede que sea necesario escribir:
</para>
<example>
<title>Orden incorrecto de los argumentos</title>
<para>
La string de formato soporta la numeración y el intercambio de argumentos.
</para>
<programlisting role="php">
<![CDATA[
<?php
$num = 5;
$location = 'árbol';
$format = 'El %s tiene %d monos';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
</example>
<para>
Ahora tenemos un problema. El orden de los argumentos ha sido cambiado,
y ya no corresponde al orden de los argumentos en el script PHP.
Se desea dejar el código PHP intacto, pero simplemente indicar
en la string de formato el orden en el que los argumentos deben
ser utilizados. La string de formato puede ser reescrita así:
</para>
<example>
<title>Uso del marcador de orden</title>
<programlisting role="php">
<![CDATA[
<?php
$num = 5;
$location = 'árbol';
$format = 'El %2$s tiene %1$d monos';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
</example>
<para>
Una de las ventajas es que los parámetros ficticios pueden ser repetidos sin
añadir más argumentos en el código.
</para>
<example>
<title>Repetición del marcador</title>
<programlisting role="php">
<![CDATA[
<?php
$format = 'El %2$s tiene %1$d monos.
Es un hermoso %2$s con %1$d monos.';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
</example>
<para>
Al utilizar el mecanismo de intercambio de argumentos,
el <emphasis>especificador de posición</emphasis>
<literal>n$</literal> debe ocurrir inmediatamente después del
signo de porcentaje(<literal>%</literal>), antes de cualquier otro
especificador, como en el siguiente ejemplo.
</para>
<example>
<title>Especificación del carácter de relleno</title>
<programlisting role="php">
<![CDATA[
<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
......123
000000123
]]>
</screen>
</example>
<example>
<title>Especificador de posición con otros especificadores</title>
<programlisting role="php">
<![CDATA[
<?php
$format = 'El %2$s contiene %1$04d monos';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
El árbol contiene 0005 monos
]]>
</screen>
</example>
<example>
<title><function>sprintf</function>: entero sin espacios</title>
<programlisting role="php">
<![CDATA[
<?php
$year = 2005;
$month = 5;
$day = 6;
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
echo $isodate;
?>
]]>
</programlisting>
</example>
<example>
<title><function>sprintf</function>: formateo de divisas</title>
<programlisting role="php">
<![CDATA[
<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
echo $money, PHP_EOL;
$formatted = sprintf("%01.2f", $money);
echo $formatted, PHP_EOL;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
123.1
123.10
]]>
</screen>
</example>
<example>
<title><function>sprintf</function>: notación científica</title>
<programlisting role="php">
<![CDATA[
<?php
$number = 362525200;
echo sprintf("%.3e", $number), PHP_EOL;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
3.625e+8
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>printf</function></member>
<member><function>fprintf</function></member>
<member><function>vprintf</function></member>
<member><function>vsprintf</function></member>
<member><function>vfprintf</function></member>
<member><function>sscanf</function></member>
<member><function>fscanf</function></member>
<member><function>number_format</function></member>
<member><function>date</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->