diff --git a/language/operators/precedence.xml b/language/operators/precedence.xml index d5591a3d35..c28dc31dfe 100644 --- a/language/operators/precedence.xml +++ b/language/operators/precedence.xml @@ -1,6 +1,6 @@ - + 演算子の優先順位 演算子の優先順位 @@ -305,6 +305,19 @@ + + + キャスト演算子と同じ行にある単項演算子 + (~@、および単項演算の + +/-) は + instanceof よりも強く結合しますが、 + !instanceof よりも弱く結合します。 + そのため (int) $x instanceof Foo は + ((int) $x) instanceof Foo とグループ分けされ、 + !$x instanceof Foo は + !($x instanceof Foo) とグループ分けされます。 + + 結合時の評価 @@ -421,6 +434,16 @@ x minus one equals 3, or so I hope のような式も許します。この場合は foo() の戻り値が $a に代入されます。 + + これが可能なのは、代入の左辺は変数でなければならず、 + そのため代入は、周囲にある優先順位の高い前置演算子ではなく、その変数とグループ分けされるからです。 + 同じことが、式をオペランドに取る他の前置演算子、 + たとえば clone、キャスト演算子、@、 + ~ にも当てはまります。 + たとえば clone $a = $b は + (clone $a) = $b ではなく + clone ($a = $b) とグループ分けされます。 + &reftitle.changelog;