svn: /phpdoc/bg/trunk/language/types/ type-juggling.xml
[email protected] (Stanislav Yordanov) Sun, 22 May 2016 13:10:26 +0000
| Newsgroups | php.doc.bg |
|---|---|
| Message-ID | <[email protected]> |
stanprog Sun, 22 May 2016 13:10:26 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=339212
Log:
sync with EN
Changed paths:
U phpdoc/bg/trunk/language/types/type-juggling.xml
svn-diffs-339212.txt
(text/x-diff, 13 KB)
Modified: phpdoc/bg/trunk/language/types/type-juggling.xml
===================================================================
--- phpdoc/bg/trunk/language/types/type-juggling.xml 2016-05-22 12:50:58 UTC (rev 339211)
+++ phpdoc/bg/trunk/language/types/type-juggling.xml 2016-05-22 13:10:26 UTC (rev 339212)
@@ -1,27 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: kouber Status: ready -->
+<!-- EN-Revision: 334374 Maintainer: stanprog Status: ready -->
+<!-- CREDITS: kouber -->
<sect1 xml:id="language.types.type-juggling">
<title>Манипулации с типове</title>
-
+
<simpara>
- PHP не изисква (и не поддържа) изрично дефиниране на тип при
- декларирането на променлива; типът на променливата зависи
- от контекста, в който се използва. С други думи, ако
- присвоите низова стойност на променливата <parameter>$var</parameter>,
- <parameter>$var</parameter> става низ. Ако в последствие присвоите
- целочислена стойност на <parameter>$var</parameter>, то тя става цяло число.
+ PHP не изисква (и не поддържа) изрично дефиниране на тип при декларирането на
+ променлива; типът на променливата зависи от контекста, в който
+ се използва. С други думи, ако присвоите низова стойност
+ на променливата <varname>$var</varname>, <varname>$var</varname> става
+ низ. Ако в последствие присвоите целочислена стойност на
+ <varname>$var</varname>, то тя става цяло число.
</simpara>
+
<para>
Пример за автоматичното преобразуване на типове в PHP
е операторът за събиране '+'. Ако кой да е от операндите е плаващо число,
то всички операнди се изчисляват като плаващи и резултатът ще бъде отново
плаващо число. В противен случай операндите ще бъдат интерпретирани като
цели числа и резултатът също ще бъде цяло число. Забележете, че това
- НЕ променя типа на самите операнди; единствената промяна е в начина, по който
+ <emphasis>не</emphasis> променя типа на самите операнди; единствената промяна е в начина, по който
те се изчисляват.
- <informalexample>
- <programlisting role="php">
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
<![CDATA[
<?php
$foo = "0"; // $foo е низ (ASCII 48)
@@ -50,32 +54,40 @@
- -'abc' = 'abc'
-->
- </programlisting>
- </informalexample>
- </para>
+ </programlisting>
+ </informalexample>
+
<simpara>
Ако предните два примера изглеждат неясни, разгледайте <link
- linkend="language.types.string.conversion">Превръщане на низ в число</link>.
+ linkend="language.types.string.conversion">Превръщане на низ в
+ число</link>.
</simpara>
+
<simpara>
- Ако желаете изрично да накарате променлива да се изчисли като даден тип, вижте раздела за
- <link linkend="language.types.typecasting">Преобразуване на типове</link>.
- Ако желаете да промените типа на променлива, вижте
- <function>settype</function>.
+ Ако желаете изрично да накарате променлива да се изчисли като даден тип, вижте раздела за
+ <link linkend="language.types.typecasting">Преобразуване на типове</link>.
+ Ако желаете да промените типа на променлива, вижте <function>settype</function>.
</simpara>
+
<para>
Ако искате да изпробвате някой от примерите в този раздел, можете
да използвате функцията <function>var_dump</function>.
</para>
+
<note>
<para>
- Поведението при автоматично преобразуване в масив за момента не е дефинирано.
+ Поведението при автоматично преобразуване в масив за момента
+ не е дефинирано.
</para>
+
<para>
- Също, понеже PHP поддържа индексирането в низове чрез отместване посредством същия синтаксис
- като индексирането в масиви, следното е в сила за всички версии на PHP:
- <informalexample>
- <programlisting role="php">
+ Също, понеже PHP поддържа индексирането в низове чрез отместване
+ посредством същия синтаксис като индексирането в масиви, следното е в
+ сила за всички версии на PHP:
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
<![CDATA[
<?php
$a = 'car'; // $a е низ
@@ -83,23 +95,25 @@
echo $a; // bar
?>
]]>
- </programlisting>
- </informalexample>
- </para>
+ </programlisting>
+ </informalexample>
+
<para>
Вижте раздел <link linkend="language.types.string.substr">Достъп до знаците в низ</link>
за повече информация.
</para>
</note>
-
+
<sect2 xml:id="language.types.typecasting">
<title>Преобразуване на типове</title>
-
+
<para>
Преобразуването на типове в PHP работи доста подобно на това в C: името на
желания тип се поставя в скоби преди променливата, която трябва да бъде преобразувана.
- <informalexample>
- <programlisting role="php">
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
<![CDATA[
<?php
$foo = 10; // $foo е цяло число
@@ -107,42 +121,47 @@
?>
]]>
</programlisting>
- </informalexample>
- </para>
+ </informalexample>
+
<para>
Разрешените преобразувания са:
- <itemizedlist>
- <listitem>
- <simpara>(int), (integer) - преобразува в целочислен</simpara>
- </listitem>
- <listitem>
- <simpara>(bool), (boolean) - преобразува в булев</simpara>
- </listitem>
- <listitem>
- <simpara>(float), (double), (real) - преобразува в плаващ</simpara>
- </listitem>
- <listitem>
- <simpara>(string) - преобразува в низ</simpara>
- </listitem>
- <listitem>
- <simpara>(binary) - преобразува в двоичен низ (PHP 6)</simpara>
- </listitem>
- <listitem>
- <simpara>(array) - преобразува в масив</simpara>
- </listitem>
- <listitem>
- <simpara>(object) - преобразува в обект</simpara>
- </listitem>
- </itemizedlist>
</para>
+
+ <itemizedlist>
+ <listitem>
+ <simpara>(int), (integer) - преобразува в целочислен</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(bool), (boolean) - преобразува в булев</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(float), (double), (real) - преобразува в плаващ</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(string) - преобразува в низ</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(array) - преобразува в масив</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(object) - преобразува в обект</simpara>
+ </listitem>
+ <listitem>
+ <simpara>(unset) - преобразува в <type>NULL</type> (PHP 5)</simpara>
+ </listitem>
+ </itemizedlist>
+
<para>
(binary) преобразуването и бъдещата поддръжка на представката b бяха добавени в PHP 5.2.1
</para>
+
<para>
Забележете, че табулациите и интервалите са разрешени вътре в скобите,
така че следните са функционално еквивалентни:
- <informalexample>
- <programlisting role="php">
+ </para>
+
+ <informalexample>
+ <programlisting role="php">
<![CDATA[
<?php
$foo = (int) $bar;
@@ -150,9 +169,12 @@
?>
]]>
</programlisting>
+
<para>
- Преобразуване на буквени низове и променливи в двоични низове:
+ Преобразуване на буквени низове и променливи в двоични
+ низове:
</para>
+
<programlisting role="php">
<![CDATA[
<?php
@@ -161,11 +183,14 @@
?>
]]>
</programlisting>
- </informalexample>
- </para>
+ </informalexample>
+
<note>
<para>
- Вместо да преобразувате променлива в низ, можете да я заградите с кавички.
+ Вместо да преобразувате променлива в низ, можете да я
+ заградите с кавички.
+ </para>
+
<informalexample>
<programlisting role="php">
<![CDATA[
@@ -180,53 +205,67 @@
}
?>
]]>
- </programlisting>
+ </programlisting>
</informalexample>
- </para>
</note>
-
+
<para>
Възможно е резултатът от преобразуването между някои типове да не е съвсем очевиден.
За повече информация, вижте тези раздели:
+ </para>
- <itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.boolean.casting">Преобразуване в булев</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.integer.casting">Преобразуване в цяло число</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.float.casting">Преобразуване в плаващ</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.string.casting">Преобразуване в низ</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.array.casting">Преобразуване в масив</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.object.casting">Преобразуване в обект</link>
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <link linkend="language.types.resource.casting">Преобразуване в
+ ресурс</link>
+ </simpara>
+ </listitem>
<listitem>
- <simpara><link linkend="language.types.boolean.casting">Преобразуване в булев</link></simpara>
+ <simpara>
+ <link linkend="language.types.null.casting">Converting to &null;</link>
+ </simpara>
</listitem>
<listitem>
- <simpara><link linkend="language.types.integer.casting">Преобразуване в цяло число</link></simpara>
- </listitem>
- <listitem>
- <simpara><link linkend="language.types.float.casting">Преобразуване в плаващ</link></simpara>
- </listitem>
- <listitem>
- <simpara><link linkend="language.types.string.casting">Преобразуване в низ</link></simpara>
- </listitem>
- <listitem>
- <simpara><link linkend="language.types.array.casting">Преобразуване в масив</link></simpara>
- </listitem>
- <listitem>
- <simpara><link linkend="language.types.object.casting">Преобразуване в обект</link></simpara>
- </listitem>
- <listitem>
- <simpara><link linkend="language.types.resource.casting">Преобразуване в ресурс</link></simpara>
- </listitem>
- <!-- don't exist yet
- <listitem>
- <simpara><link linkend="language.types.null.casting">Converting to
- &null;</link></simpara>
- </listitem>
- -->
- <listitem>
<simpara>
<link linkend="types.comparisons">Таблици за сравнение на типове</link>
</simpara>
</listitem>
- </itemizedlist>
- </para>
+ </itemizedlist>
+
</sect2>
</sect1>
-
+
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml