barak Mon Jan 28 19:21:14 2002 EDT
Added files:
/phpdoc/he/language expressions.xml
Log:
half of this file is Translated, Just hope that i translated the word expression as
well (-:
Index: phpdoc/he/language/expressions.xml
+++ phpdoc/he/language/expressions.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<chapter id="language.expressions">
<title>Expressions - ������� </title>
<simpara>
������� �� ��� ����� ������ ��� ������ � PHP. � PHP,
���� �� ��� ������� ��� �����. ���� ������
��������� ����� ������ �� ����� "�����" ��� "�� ��� ��� ��
���".</simpara>
<simpara>
����� ������� ����� �� "������" �� ������ �������.
���� ������� "$a = 5", ����� ������ �� ���� '5' ���� $a. �����
'5', �� ����� �� ���� 5, �� ������ ����� '5' ��� ����� �� ����
5 (����� ����, '5' ��� ���� ���� ��' ��� ).</simpara>
<simpara>
���� ����� ��"�, ����� ���� �� $a's ��� 5.
��� ��, �� ����� ������� $b = $a, ������ ���� ����� ����
$b = 5. ������ �����, $a ��� "�����" �� ����
5 �� ��.</simpara>
<para>
������ ��� ���� ������ "��������" �� ��������.
����, ��� ���� �� ������ ����:
<informalexample>
<programlisting role="php">
<![CDATA[
function foo ()
{
return 5;
}
]]>
</programlisting>
</informalexample></para>
<simpara>
����� ��� �� ������ �� ����� �� �������� (�� ������ ������
�� ���� ���� ��� �"��������"), ��� ��� ����
������� <literal>$c = foo()</literal> ��� ������ ��� ���
����� <literal>$c = 5</literal>, ����� ���� ����. ��������
�� ������� �� ���� ��� ���� �������. ���� � foo()
����� �� ���� 5, ���� ���� ����� �� �������� 'foo()' ��� 5. ����,
��������� �� �� ������� ��� ����, ��� �� ������ ����� �����.</simpara>
<simpara>
�����, ����� � PHP �� ������ ����� integers (������ �����), ������� ������
�� ��. PHP ����� ������ ����� �������� (���� �����): ������ �����,
���� ����� ��� (������ �� �����) ����� ������ (����� �������-scalar- ��
����� ��� ���� �"����" ������ ����� ����, ������ ���� �������).
PHP ����� ����� ���� ���� ����� �������(non-scalar): ������
����������. �� ��� ���� ����� �� ���� ����� ����� ���� ����� ��
�� ����� ����� ���� ��������.</simpara>
<simpara>
��� ���, ������� �� PHP/FI 2 �� ������ ������ �� �����. ��� ����, PHP
���� �� "��������" ���� ����, ��� ��� ���� ����
���� �����. PHP ��� ��� ������ ������� , �������
����� �� ��� ���� ����� �� �������. ���� ����� ��
�� ������ ���� ����� ��, '$a = 5'. �� ���� �����
�������� �� 2 �����, ���� �� ����� ����
'5', ����� �� $a ������ ����� ����� �� ��� 5.
���� ���� �� ����� ����� ��� ��� ���� ������,
������ ��� ����� ����.
����� ���� ����� ��� �� ���� ������, ����� ��� 5.
�����, �� ���� � '$a = 5', ���� ������� ��� ���� ����,
��� ����� �� ���� 5. ���, ����� ��
'$b = ($a = 5)' ��� ��� ����� �� '$a = 5; $b = 5;' (����� ������� ';'
���� ���� �� ���� �����). ���� ������ ����� ����
����� �����, ���� ����� �� �����: '$b = $a = 5'.</simpara>
<simpara>
����� ���� ����� ����� ���� ����� ��������:
������ PHP/FI 2 �����
����� ������ ����� �� ����� �� ���������� �����++ �
�����--. ��� �� ���������� ������ �������. �
PHP/FI 2, ����� '$a++' ��� ��� ��� (��� ����
�����), ���� ��� �� �� �����.
PHP ������ �� ������� �� �������� ������/����� �� ��� ������
��������, ��� ��� � C. � PHP, ��� � C, ����
��� ����� �� �������� ����� pre-increment � post-increment.
��� ��� ������� ������� �� ����
������, ������ �� ������ ��� ���. �����
��� ���� �� ������ ������.
Pre-increment, ����� � '++$variable', ����� �� ����
������ (PHP ������ �� ���� ���� ���� ����� �� ����
��� ����� 'pre-increment' �� ������ ���� ����: "����� ����").
Post-increment, ����� � '$variable++' ���� �� ���� ������ ��
$variable, ���� ���� ����� ���� (PHP ������ �� ���� �� ������
���� ����� �� ����, ����� ��� 'post-increment').</simpara>
<simpara>
��� ���� �� ������� ��� ����� ������.
������� ��� ������� � 0 �� 1, ����� � &false; �� � &true;
(������). PHP ����� � > (���� �), >= (���� ��
���� �), == (����), != (�� ����), < (��� �) and <=
(��� �� ���� �). ������ �������� ��� ���� ����� ������
����� ���� , ����� �� <literal>if</literal>
������.</simpara>
<simpara>
���� ������ �� ������� ����� ��� ����� ��
operator-assignment expressions. You already know that if you
want to increment $a by 1, you can simply write '$a++' or '++$a'.
But what if you want to add more than one to it, for instance 3?
You could write '$a++' multiple times, but this is obviously not a
very efficient or comfortable way. A much more common practice is
to write '$a = $a + 3'. '$a + 3' evaluates to the value of $a
plus 3, and is assigned back into $a, which results in
incrementing $a by 3. In PHP, as in several other languages
like C, you can write this in a shorter way, which with time would
become clearer and quicker to understand as well. Adding 3 to the
current value of $a can be written '$a += 3'. This means exactly
"take the value of $a, add 3 to it, and assign it back into $a".
In addition to being shorter and clearer, this also results in
faster execution. The value of '$a += 3', like the value of a
regular assignment, is the assigned value. Notice that it is NOT
3, but the combined value of $a plus 3 (this is the value that's
assigned into $a). Any two-place operator can be used in this
operator-assignment mode, for example '$a -= 5' (subtract 5 from
the value of $a), '$b *= 7' (multiply the value of $b by 7), etc.
</simpara>
<para>
There is one more expression that may seem odd if you haven't seen
it in other languages, the ternary conditional operator:
<informalexample><programlisting>
<![CDATA[
$first ? $second : $third
]]>
</programlisting></informalexample>
If the value of the first subexpression is &true; (non-zero), then
the second subexpression is evaluated, and that is the result of
the conditional expression. Otherwise, the third subexpression is
evaluated, and that is the value.
</para>
<para>
The following example should help you understand pre- and
post-increment and expressions in general a bit better:
<informalexample>
<programlisting role="php">
<![CDATA[
function double($i)
{
return $i*2;
}
$b = $a = 5; /* assign the value five into the variable $a and $b */
$c = $a++; /* post-increment, assign original value of $a
(5) to $c */
$e = $d = ++$b; /* pre-increment, assign the incremented value of
$b (6) to $d and $e */
/* at this point, both $d and $e are equal to 6 */
$f = double($d++); /* assign twice the value of $d <emphasis>before</emphasis>
the increment, 2*6 = 12 to $f */
$g = double(++$e); /* assign twice the value of $e <emphasis>after</emphasis>
the increment, 2*7 = 14 to $g */
$h = $g += 10; /* first, $g is incremented by 10 and ends with the
value of 24. the value of the assignment (24) is
then assigned into $h, and $h ends with the value
of 24 as well. */
]]>
</programlisting>
</informalexample>
</para>
<simpara>
In the beginning of the chapter we said that we'll be describing
the various statement types, and as promised, expressions can be
statements. However, not every expression is a statement. In
this case, a statement has the form of 'expr' ';' that is, an
expression followed by a semicolon. In '$b=$a=5;', $a=5 is a
valid expression, but it's not a statement by itself. '$b=$a=5;'
however is a valid statement.</simpara>
<simpara>
One last thing worth mentioning is the truth value of expressions.
In many events, mainly in conditional execution and loops, you're
not interested in the specific value of the expression, but only
care about whether it means &true; or &false;.
<!-- (PHP doesn't have a
dedicated boolean type) : WRONG, php does. -->
The constants &true; and &false; (case-insensitive) are the two
possible boolean values. When necessary, an expression is
automatically converted to boolean. See the
<link linkend="language.types.typecasting">section about
type-casting</link> for details about how.
</simpara>
<simpara>
PHP provides a full and powerful implementation of expressions, and
documenting it entirely goes beyond the scope of this manual. The
above examples should give you a good idea about what expressions
are and how you can construct useful expressions. Throughout the
rest of this manual we'll write <replaceable>expr</replaceable>
to indicate any valid PHP expression.</simpara>
</chapter>
<!-- 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:"../../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
-->