(double) is (float), moving precedence table to the more logical first place.

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@78051 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Gabor Hojtsy 2002-04-13 09:59:00 +00:00
parent d64960f494
commit 414d9d4374

View file

@ -1,10 +1,123 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.32 $ -->
<!-- $Revision: 1.33 $ -->
<chapter id="language.operators">
<title>Operators</title>
<simpara>
</simpara>
<sect1 id="language.operators.precedence">
<title>Operator Precedence</title>
<para>
The precedence of an operator specifies how "tightly" it binds two
expressions together. For example, in the expression <literal>1 +
5 * 3</literal>, the answer is <literal>16</literal> and not
<literal>18</literal> because the multiplication ("*") operator
has a higher precedence than the addition ("+") operator.
Parentheses may be used to force precedence, if necessary. For
instance: <literal>(1 + 5) * 3</literal> evaluates to
<literal>18</literal>.
</para>
<para>
The following table lists the precedence of operators with the
lowest-precedence operators listed first.
<table>
<title>Operator Precedence</title>
<tgroup cols="2">
<thead>
<row>
<entry>Associativity</entry>
<entry>Operators</entry>
</row>
</thead>
<tbody>
<row>
<entry>left</entry>
<entry>,</entry>
</row>
<row>
<entry>left</entry>
<entry>or</entry>
</row>
<row>
<entry>left</entry>
<entry>xor</entry>
</row>
<row>
<entry>left</entry>
<entry>and</entry>
</row>
<row>
<entry>right</entry>
<entry>print</entry>
</row>
<row>
<entry>left</entry>
<entry>
= += -= *= /= .= %= &amp;= |= ^= ~= &lt;&lt;= &gt;&gt;=
</entry>
</row>
<row>
<entry>left</entry>
<entry>? :</entry>
</row>
<row>
<entry>left</entry>
<entry>||</entry>
</row>
<row>
<entry>left</entry>
<entry>&amp;&amp;</entry>
</row>
<row>
<entry>left</entry>
<entry>|</entry>
</row>
<row>
<entry>left</entry>
<entry>^</entry>
</row>
<row>
<entry>left</entry>
<entry>&amp;</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>== != === !==</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>&lt; &lt;= &gt; &gt;=</entry>
</row>
<row>
<entry>left</entry>
<entry>&lt;&lt; &gt;&gt;</entry>
</row>
<row>
<entry>left</entry>
<entry>+ - .</entry>
</row>
<row>
<entry>left</entry>
<entry>* / %</entry>
</row>
<row>
<entry>right</entry>
<entry>! ~ ++ -- (int) (float) (string) (array) (object) @</entry>
</row>
<row>
<entry>right</entry>
<entry>[</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>new</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1 id="language.operators.arithmetic">
<title>Arithmetic Operators</title>
<simpara>
@ -497,119 +610,6 @@ echo "Should be 4: " . $a . "<br>\n";
</simpara>
</sect1>
<sect1 id="language.operators.precedence">
<title>Operator Precedence</title>
<para>
The precedence of an operator specifies how "tightly" it binds two
expressions together. For example, in the expression <literal>1 +
5 * 3</literal>, the answer is <literal>16</literal> and not
<literal>18</literal> because the multiplication ("*") operator
has a higher precedence than the addition ("+") operator.
Parentheses may be used to force precedence, if necessary. For
instance: <literal>(1 + 5) * 3</literal> evaluates to
<literal>18</literal>.
</para>
<para>
The following table lists the precedence of operators with the
lowest-precedence operators listed first.
<table>
<title>Operator Precedence</title>
<tgroup cols="2">
<thead>
<row>
<entry>Associativity</entry>
<entry>Operators</entry>
</row>
</thead>
<tbody>
<row>
<entry>left</entry>
<entry>,</entry>
</row>
<row>
<entry>left</entry>
<entry>or</entry>
</row>
<row>
<entry>left</entry>
<entry>xor</entry>
</row>
<row>
<entry>left</entry>
<entry>and</entry>
</row>
<row>
<entry>right</entry>
<entry>print</entry>
</row>
<row>
<entry>left</entry>
<entry>
= += -= *= /= .= %= &amp;= |= ^= ~= &lt;&lt;= &gt;&gt;=
</entry>
</row>
<row>
<entry>left</entry>
<entry>? :</entry>
</row>
<row>
<entry>left</entry>
<entry>||</entry>
</row>
<row>
<entry>left</entry>
<entry>&amp;&amp;</entry>
</row>
<row>
<entry>left</entry>
<entry>|</entry>
</row>
<row>
<entry>left</entry>
<entry>^</entry>
</row>
<row>
<entry>left</entry>
<entry>&amp;</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>== != === !==</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>&lt; &lt;= &gt; &gt;=</entry>
</row>
<row>
<entry>left</entry>
<entry>&lt;&lt; &gt;&gt;</entry>
</row>
<row>
<entry>left</entry>
<entry>+ - .</entry>
</row>
<row>
<entry>left</entry>
<entry>* / %</entry>
</row>
<row>
<entry>right</entry>
<entry>! ~ ++ -- (int) (double) (string) (array) (object) @</entry>
</row>
<row>
<entry>right</entry>
<entry>[</entry>
</row>
<row>
<entry>non-associative</entry>
<entry>new</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1 id="language.operators.string">
<title>String Operators</title>
<simpara>