diff --git a/language/operators/precedence.xml b/language/operators/precedence.xml index 2dace7d2d..18e210772 100644 --- a/language/operators/precedence.xml +++ b/language/operators/precedence.xml @@ -1,5 +1,5 @@ - + La prioridad de los operadores @@ -295,6 +295,18 @@ + + + Los operadores unarios que comparten la fila con los operadores de conversión + (~, @, y +/- + unarios) tienen mayor prioridad que instanceof, mientras que + ! tiene menor prioridad. En consecuencia, + (int) $x instanceof Foo se agrupa como + ((int) $x) instanceof Foo, mientras que + !$x instanceof Foo se agrupa como + !($x instanceof Foo). + + Asociatividad @@ -409,6 +421,15 @@ x menos uno es igual 3, en todo caso espero Aunque = tiene prioridad sobre la mayoría de los operadores, PHP ejecutará expresiones como: if (!$a = foo()). En esta situación, el resultado de foo() será colocado en la variable $a. + + Esto es posible porque el lado izquierdo de una asignación debe ser una + variable, por lo que la asignación se agrupa con esa variable en lugar de con + el operador prefijo circundante de mayor prioridad. Lo mismo se aplica a los + demás operadores prefijos que toman una expresión como operando, como + clone, los operadores de conversión, @ y + ~: por ejemplo, clone $a = $b se agrupa + como clone ($a = $b), no como (clone $a) = $b. + &reftitle.changelog;