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 ����� � &gt; (���� �), &gt;= (���� ��
    ���� �), == (����), != (�� ����), &lt; (��� �) and &lt;=
    (��� �� ���� �).  ������ �������� ��� ���� �����  ������ 
    ����� ���� , ����� �� <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
-->

Reply via email to