com doc/zh: sync to en: Add exponentiation assignment operator to corresponding table: language/operators.xml
[email protected] (Bole Chen) Wed, 03 Feb 2021 03:03:16 +0000
| Newsgroups | php.doc.zh |
|---|---|
| Message-ID | <[email protected]> |
Commit: 098e8d7c1a66629705dd295b77d1045df3857d25 Author: Bole Chen <[email protected]> Wed, 3 Feb 2021 11:03:16 +0800 Parents: e0514ae682e3f5be98209180d41c15cf1f3d6233 Branches: master Link: http://git.php.net/?p=doc/zh.git;a=commitdiff;h=098e8d7c1a66629705dd295b77d1045df3857d25 Log: sync to en: Add exponentiation assignment operator to corresponding table Changed paths: M language/operators.xml
diff_098e8d7c1a66629705dd295b77d1045df3857d25.txt
(text/plain, 10.3 KB)
diff --git a/language/operators.xml b/language/operators.xml
index e1148ed6..a6c194f7 100755
--- a/language/operators.xml
+++ b/language/operators.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 646e6eb3e3eaf0cb40127405a01ed5e3f479799f Maintainer: jhdxr Status: ready -->
+<!-- EN-Revision: 783fbc2001b129f5f8956937e15e253969b8765c Maintainer: jhdxr Status: ready -->
<chapter xml:id="language.operators" xmlns="http://docbook.org/ns/docbook">
<title>运算符</title>
<simpara>
@@ -35,7 +35,10 @@
<literal>$a = ($b = $c)</literal>。
</para>
<para>
- 没有结合的相同优先级的运算符不能连在一起使用,例如 <literal>1 < 2 > 1</literal> 在PHP是不合法的。但另外一方面表达式 <literal>1 <= 1 == 1</literal> 是合法的, 因为 <literal>==</literal> 的优先级低于 <literal><=</literal>。
+ 没有结合的相同优先级的运算符不能连在一起使用,例如
+ <literal>1 < 2 > 1</literal> 在PHP是不合法的。但另外一方面表达式
+ <literal>1 <= 1 == 1</literal> 是合法的, 因为 <literal>==</literal> 的优先级低于
+ <literal><=</literal>。
</para>
<para>
括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。
@@ -69,15 +72,15 @@
<row>
<entry>不适用</entry>
<entry>
- <literal>++</literal>
- <literal>--</literal>
- <literal>~</literal>
- <literal>(int)</literal>
- <literal>(float)</literal>
- <literal>(string)</literal>
+ <literal>++</literal>
+ <literal>--</literal>
+ <literal>~</literal>
+ <literal>(int)</literal>
+ <literal>(float)</literal>
+ <literal>(string)</literal>
<literal>(array)</literal>
- <literal>(object)</literal>
- <literal>(bool)</literal>
+ <literal>(object)</literal>
+ <literal>(bool)</literal>
<literal>@</literal>
</entry>
<entry>
@@ -112,8 +115,8 @@
<row>
<entry>左</entry>
<entry>
- <literal>+</literal>
- <literal>-</literal>
+ <literal>+</literal>
+ <literal>-</literal>
<literal>.</literal>
</entry>
<entry>
@@ -123,7 +126,7 @@
<row>
<entry>左</entry>
<entry>
- <literal><<</literal>
+ <literal><<</literal>
<literal>>></literal>
</entry>
<entry>
@@ -133,9 +136,9 @@
<row>
<entry>无</entry>
<entry>
- <literal><</literal>
- <literal><=</literal>
- <literal>></literal>
+ <literal><</literal>
+ <literal><=</literal>
+ <literal>></literal>
<literal>>=</literal>
</entry>
<entry>
@@ -146,9 +149,9 @@
<entry>无</entry>
<entry>
<literal>==</literal>
- <literal>!=</literal>
- <literal>===</literal>
- <literal>!==</literal>
+ <literal>!=</literal>
+ <literal>===</literal>
+ <literal>!==</literal>
<literal><></literal>
<literal><=></literal>
</entry>
@@ -208,18 +211,18 @@
<row>
<entry>右</entry>
<entry>
- <literal>=</literal>
- <literal>+=</literal>
- <literal>-=</literal>
- <literal>*=</literal>
- <literal>**=</literal>
- <literal>/=</literal>
- <literal>.=</literal>
- <literal>%=</literal>
- <literal>&=</literal>
- <literal>|=</literal>
- <literal>^=</literal>
- <literal><<=</literal>
+ <literal>=</literal>
+ <literal>+=</literal>
+ <literal>-=</literal>
+ <literal>*=</literal>
+ <literal>**=</literal>
+ <literal>/=</literal>
+ <literal>.=</literal>
+ <literal>%=</literal>
+ <literal>&=</literal>
+ <literal>|=</literal>
+ <literal>^=</literal>
+ <literal><<=</literal>
<literal>>>=</literal>
<literal>??=</literal>
</entry>
@@ -462,7 +465,7 @@ $a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。
</programlisting>
</informalexample>
</para>
-
+
<para>
在基本赋值运算符之外,还有适合于所有<link
linkend="language.operators">二元算术</link>,数组集合和字符串运算符的“组合运算符”,这样可以在一个表达式中使用它的值并把表达式的结果赋给它,例如:
@@ -493,7 +496,7 @@ $b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";
<sect2 xml:id="language.operators.assignment.reference">
<title>引用赋值</title>
<para>
- PHP 支持引用赋值,使用“<computeroutput>$var
+ PHP 支持引用赋值,使用“<computeroutput>$var
= &$othervar;</computeroutput>”语法。引用赋值意味着两个变量指向了同一个数据,没有拷贝任何东西。
</para>
<para>
@@ -542,11 +545,11 @@ Parse error: syntax error, unexpected 'new' (T_NEW) in …
</informalexample>
</para>
<para>
- 有关引用更多信息参见本手册中<link
- linkend="language.references">引用的解释</link>一章。
+ 有关引用更多信息参见本手册中 <link
+ linkend="language.references">引用的解释</link> 一章。
</para>
</sect2>
-
+
<sect2 xml:id="language.operators.assignment.arithmetic">
<title>算术赋值运算符</title>
@@ -585,6 +588,11 @@ Parse error: syntax error, unexpected 'new' (T_NEW) in …
<entry>$a = $a % $b</entry>
<entry>取模</entry>
</row>
+ <row>
+ <entry>$a **= $b</entry>
+ <entry>$a = $a ** $b</entry>
+ <entry>指数</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>
@@ -658,6 +666,7 @@ Parse error: syntax error, unexpected 'new' (T_NEW) in …
</tgroup>
</informaltable>
</sect2>
+
<sect2 role="seealso" xml:id="language.operators.assignment.see-also">
&reftitle.seealso;
<para>
@@ -1424,62 +1433,62 @@ case "a": // never reached because "a" is already matched with 0
}
?>
]]>
- </programlisting>
- </informalexample>
- </para>
+ </programlisting>
+ </informalexample>
+ </para>
</warning>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
-<?php
+<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
-
+
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
-
+
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
-
+
echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1
-
+
// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
-
+
// Objects
-$a = (object) ["a" => "b"];
-$b = (object) ["a" => "b"];
+$a = (object) ["a" => "b"];
+$b = (object) ["a" => "b"];
echo $a <=> $b; // 0
-
-$a = (object) ["a" => "b"];
-$b = (object) ["a" => "c"];
+
+$a = (object) ["a" => "b"];
+$b = (object) ["a" => "c"];
echo $a <=> $b; // -1
-
-$a = (object) ["a" => "c"];
-$b = (object) ["a" => "b"];
+
+$a = (object) ["a" => "c"];
+$b = (object) ["a" => "b"];
echo $a <=> $b; // 1
-
-// only values are compared
-$a = (object) ["a" => "b"];
-$b = (object) ["b" => "b"];
+
+// not only values are compared; keys must match
+$a = (object) ["a" => "b"];
+$b = (object) ["b" => "b"];
echo $a <=> $b; // 1
?>
]]>
-
+
</programlisting>
</informalexample>
</para>
@@ -1561,7 +1570,8 @@ var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 is FA
</programlisting>
</example>
</para>
-
+
+
<para>
<example>
<title>标准数组比较代码</title>
@@ -1690,7 +1700,7 @@ echo ((true ? 'true' : 'false') ? 't' : 'f');
</para>
</note>
</sect2>
-
+
<sect2 xml:id="language.operators.comparison.coalesce">
<title>NULL 合并运算符</title>
<para>
@@ -1724,7 +1734,7 @@ if (isset($_POST['action'])) {
<note>
<simpara>
请注意:NULL 合并运算符是一个表达式,产生的也是表达式结果,而不是变量。
- 返回引用变量时需要强调这一点。
+ 返回引用变量时需要强调这一点。
因此,在返回引用的函数里就无法使用这样的语句:<literal>return $foo ?? $bar;</literal>,还会提示警告。
</simpara>
</note>
@@ -1750,7 +1760,7 @@ echo $foo ?? $bar ?? $baz ?? $qux; // 输出 1
</example>
</para>
</note>
- </sect2>
+ </sect2>
</sect1>
<sect1 xml:id="language.operators.errorcontrol">
@@ -2269,7 +2279,7 @@ var_dump($a === $b); // bool(false)
<sect1 xml:id="language.operators.type">
<title>类型运算符</title>
<para>
- <literal>instanceof</literal> 用于确定一个 PHP 变量是否属于某一类
+ <literal>instanceof</literal> 用于确定一个 PHP 变量是否属于某一类
<link linkend="language.oop5.basic.class">class</link> 的实例:
<example>
<title>对类使用 <literal>instanceof</literal></title>
@@ -2331,7 +2341,7 @@ bool(true)
</example>
</para>
<para>
- 检查一个对象是否<emphasis>不是</emphasis>某个类的实例,可以使用<link
+ 检查一个对象是否<emphasis>不是</emphasis>某个类的实例,可以使用<link
linkend="language.operators.logical">逻辑运算符 <literal>not</literal></link>。
<example>
<title>使用 <literal>instanceof</literal> 检查对象<emphasis>不是</emphasis>某个类的实例</title>
@@ -2356,7 +2366,7 @@ bool(true)
</example>
</para>
<para>
- 最后,<literal>instanceof</literal>也可用于确定一个变量是不是实现了某个<link
+ 最后,<literal>instanceof</literal>也可用于确定一个变量是不是实现了某个<link
linkend="language.oop5.interfaces">接口</link>的对象的实例:
<example>
<title>对接口使用 <literal>instanceof</literal></title>