svn: /phpdoc/bg/trunk/reference/strings/functions/ sprintf.xml
[email protected] (Stanislav Yordanov) Fri, 11 Mar 2016 11:14:33 +0000
| Newsgroups | php.doc.bg |
|---|---|
| Message-ID | <[email protected]> |
stanprog Fri, 11 Mar 2016 11:14:33 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=338735
Log:
sync to EN
Changed paths:
U phpdoc/bg/trunk/reference/strings/functions/sprintf.xml
svn-diffs-338735.txt
(text/x-diff, 17.1 KB)
Modified: phpdoc/bg/trunk/reference/strings/functions/sprintf.xml
===================================================================
--- phpdoc/bg/trunk/reference/strings/functions/sprintf.xml 2016-03-11 10:59:43 UTC (rev 338734)
+++ phpdoc/bg/trunk/reference/strings/functions/sprintf.xml 2016-03-11 11:14:33 UTC (rev 338735)
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: stanprog Status: ready -->
-<refentry xml:id="function.sprintf" xmlns="http://docbook.org/ns/docbook">
+<!-- EN-Revision: 336416 Maintainer: stanprog Status: ready -->
+<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.sprintf">
<refnamediv>
<refname>sprintf</refname>
<refpurpose>Връща форматиран низ</refpurpose>
</refnamediv>
-
+
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -20,7 +20,7 @@
<parameter>format</parameter>.
</para>
</refsect1>
-
+
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -43,31 +43,29 @@
<orderedlist>
<listitem>
<simpara>
- Незадължителен <emphasis>описател на знака</emphasis>, който
- задължава използването на знак (- или +) за числата.
- По подразбиране се използва само знака минус при числата,
- ако те са отрицателни. Този описател задължава положителните
- числа да имат знак плюс и беше добавен в PHP 4.3.0.
+ Незадължителен <emphasis>описател на знака</emphasis>, който задължава използването на знак
+ (- или +) за числата. По подразбиране се използва само знака минус
+ при числата, ако те са отрицателни. Този описател задължава положителните числа
+ да имат знак плюс и беше добавен в PHP 4.3.0.
</simpara>
</listitem>
<listitem>
<simpara>
- Незадължителен <emphasis>описател на уплътнението</emphasis>,
- който указва кой знак ще бъде използван за уплътнение на
- резултата до размера на съответния низ. Това може да е знак
- за интервал или <literal>0</literal> (нула).
- По подразбиране уплътнението се извършва с интервали.
- Алтернативен знак за уплътнение може да бъде указан, като
- се сложи пред него единична кавичка (<literal>'</literal>).
+ Незадължителен <emphasis>описател на уплътнението</emphasis>, който указва
+ кой знак ще бъде използван за уплътнение на резултата до
+ размера на съответния низ. Това може да е знак за интервал или
+ <literal>0</literal> (нула). По подразбиране уплътнението се извършва
+ с интервали. Може да бъде указан алтернативен знак за уплътнение,
+ като се сложи пред него единична кавичка (<literal>'</literal>).
Вижте примера по-долу.
</simpara>
</listitem>
<listitem>
<simpara>
- Незадължителен <emphasis>описател на подравняването</emphasis>,
- който указва дали резултатът ще бъде ляво подравнен или дясно
- подравнен. По подразбиране подравняването е дясно; Знакът
- <literal>-</literal> ще го направи ляво подравнен.
+ Незадължителен <emphasis>описател на подравняването</emphasis>, който указва
+ дали резултатът ще бъде ляво или дясно подравнен.
+ По подразбиране подравняването е дясно; Знакът <literal>-</literal>
+ ще го направи ляво подравнен.
</simpara>
</listitem>
<listitem>
@@ -79,11 +77,14 @@
</listitem>
<listitem>
<simpara>
- Незадължителен <emphasis>описател на точността</emphasis>,
+ Незадължителен <emphasis>описател на точността</emphasis>, във вид на
+ точка (<literal>.</literal>) последвана от незадължителен десетичен цифров низ
който указва колко десетични знака ще бъдат показани при
- числа с плаваща запетая. Използването на този описател
- при низове указва точката на прекъсване, дефинирайки
- максималната дължина в брой знакове.
+ числа с плаваща запетая. Използването на този описател при низове
+ указва точката на прекъсване, дефинирайки максималната дължина в брой
+ знакове. Освен това, знакът, използван за уплътняване на
+ числото може да (незадължително) да бъде указан между точката и
+ цифрата.
</simpara>
</listitem>
<listitem>
@@ -109,13 +110,14 @@
<member>
<literal>e</literal> - аргументът се разглежда като число в
научна нотация (например 1.2e+2).
- От PHP 5.2.1, описателят на точността представлява броя на цифрите след десетичната
- запетая. В по-ранни версии, той представлява броя на значещите цифри (с една по-малко).
+ От PHP 5.2.1, описателят на точността представлява броя на цифрите
+ след десетичната запетая. В по-ранни версии, той представлява
+ броя на значещите цифри (с една по-малко).
</member>
<member>
- <literal>u</literal> - аргументът се разглежда като цяло число,
- а се представя във вид на десетично число без знак.
- </member>
+ <literal>E</literal> - като <literal>%e</literal>, но използва
+ буква в горен регистър (например 1.2E+2).
+ </member>
<member>
<literal>f</literal> - аргументът се разглежда като число с
плаваща запетая и се представя като число с плаваща запетая
@@ -128,6 +130,14 @@
Достъпно от PHP 4.3.10 и PHP 5.0.3.
</member>
<member>
+ <literal>g</literal> - по-кратко от <literal>%e</literal> и
+ <literal>%f</literal>.
+ </member>
+ <member>
+ <literal>G</literal> - по-кратко от <literal>%E</literal> и
+ <literal>%f</literal>.
+ </member>
+ <member>
<literal>o</literal> - аргументът се разглежда като цяло число,
а се извежда във вид на осмично число.
</member>
@@ -136,6 +146,10 @@
като низ.
</member>
<member>
+ <literal>u</literal> - аргументът се разглежда като цяло число,
+ а се представя във вид на десетично число без знак.
+ </member>
+ <member>
<literal>x</literal> - аргументът се разглежда като цяло число,
а се представя във вид на шестнадесетично число
(с букви в долен регистър).
@@ -151,6 +165,54 @@
</orderedlist>
</para>
<para>
+ Променливите ще бъдат преобразувани към съответния тип на описателя:
+ <table xml:id="sprintf.coercion">
+ <title>Обработка на типовете</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Тип</entry>
+ <entry>Описатели</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>string</literal></entry>
+ <entry><literal>s</literal></entry>
+ </row>
+ <row>
+ <entry><literal>integer</literal></entry>
+ <entry>
+ <literal>d</literal>,
+ <literal>u</literal>,
+ <literal>c</literal>,
+ <literal>o</literal>,
+ <literal>x</literal>,
+ <literal>X</literal>,
+ <literal>b</literal>
+ </entry>
+ </row>
+ <row>
+ <entry><literal>double</literal></entry>
+ <entry>
+ <literal>g</literal>,
+ <literal>G</literal>,
+ <literal>e</literal>,
+ <literal>E</literal>,
+ <literal>f</literal>,
+ <literal>F</literal>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ <warning>
+ <para>
+ Опитът да се използва комбинация от низове и описатели на ширината с набор от знаци, който използва повече от един байт за знак, може да доведе до неочаквани резултати
+ </para>
+ </warning>
+ <para>
Низът за форматиране поддържа номериране (промяна на реда) на параметрите.
Ето един пример:
<example>
@@ -158,13 +220,13 @@
<programlisting role="php">
<![CDATA[
<?php
-$format = 'There are %d monkeys in the %s';
+$format = 'Има %d маймуни на %s';
printf($format, $num, $location);
?>
]]>
</programlisting>
</example>
- Това може да изведе "There are 5 monkeys in the tree".
+ Това може да изведе "Има 5 маймуни на дървото".
Но представете си, че създаваме форматиращият низ в отделен файл,
обикновено защото искаме да го интернационализираме и го
презаписваме в следния вид:
@@ -173,13 +235,13 @@
<programlisting role="php">
<![CDATA[
<?php
-$format = 'The %s contains %d monkeys';
+$format = 'На %s има %d маймуни';
printf($format, $num, $location);
?>
]]>
</programlisting>
</example>
- Възникна проблем. Редът на полетата във форматиращият низ
+ Възниква проблем. Редът на полетата във форматиращият низ
не съвпада с реда на параметрите в кода. Бихме искали
да оставим кода както си е и просто да укажем във форматиращия
низ за кое поле е съответният параметър. Следователно
@@ -189,28 +251,78 @@
<programlisting role="php">
<![CDATA[
<?php
-$format = 'The %2$s contains %1$d monkeys';
+$format = 'На %2$s има %1$d маймуни';
printf($format, $num, $location);
?>
]]>
</programlisting>
</example>
Другото предимство на този метод е, че можем да повтаряме
- полетата без да добавяме повече параметри в кода.
- Например:
+ полетата без да добавяме повече параметри в кода. Например:
<example>
<title>Промяна на реда на параметрите</title>
<programlisting role="php">
<![CDATA[
<?php
-$format = 'The %2$s contains %1$d monkeys.
- That\'s a nice %2$s full of %1$d monkeys.';
+$format = 'На %2$s има %1$d маймуни.
+ На %2$s се намират %1$d маймуни.';
printf($format, $num, $location);
?>
]]>
</programlisting>
</example>
+ Когато използваме промяна на реда на параметрите <emphasis>описателя на реда</emphasis>
+ <literal>n$</literal> трябва да бъде веднага
+ след знака за процент (<literal>%</literal>), преди всеки друг
+ описател, както е показано в примера по-долу.
+ <example>
+ <title>Указване на знак за уплътнение</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>Описател на позицията с други описатели</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$format = 'На %2$s има %1$04d маймуни';
+echo sprintf($format, $num, $location);
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+На дървото има 0005 маймуни
+]]>
+ </screen>
+ </example>
</para>
+ <note>
+ <para>
+ При опитът да се използва описател на позицията, по-голям от
+ <constant>PHP_INT_MAX</constant> функция
+ <function>sprintf</function> ще генерира предупреждение.
+ </para>
+ </note>
+ <warning>
+ <para>
+ Описателя на типове <literal>c</literal> игнорира тези за уплътнението и дължината
+ </para>
+ </warning>
</listitem>
</varlistentry>
<varlistentry>
@@ -230,7 +342,7 @@
</variablelist>
</para>
</refsect1>
-
+
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -238,31 +350,7 @@
<parameter>format</parameter>.
</para>
</refsect1>
-
- <refsect1 role="changelog">
- &reftitle.changelog;
- <para>
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>&Version;</entry>
- <entry>&Description;</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>4.0.6</entry>
- <entry>
- Добавена е поддръжка на номериране (промяна на реда) на аргументите
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </para>
- </refsect1>
-
+
<refsect1 role="examples">
&reftitle.examples;
<example>
@@ -316,8 +404,8 @@
<programlisting role="php">
<![CDATA[
<?php
-$s = 'monkey';
-$t = 'many monkeys';
+$s = 'маймуна';
+$t = 'много маймуни';
printf("[%s]\n", $s); // стандартно извеждане на низ
printf("[%10s]\n", $s); // подравняване в дясно и уплътняване с интервали
@@ -331,12 +419,12 @@
&example.outputs;
<screen>
<![CDATA[
-[monkey]
-[ monkey]
-[monkey ]
-[0000monkey]
-[####monkey]
-[many monke]
+[маймуна]
+[ маймуна]
+[маймуна ]
+[000маймуна]
+[###маймуна]
+[много майм]
]]>
</screen>
</example>
@@ -378,7 +466,7 @@
</programlisting>
</example>
</refsect1>
-
+
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -391,7 +479,7 @@
</simplelist>
</para>
</refsect1>
-
+
</refentry>
<!-- Keep this comment at the end of the file