2013-06-21 2 views
0

В документации http://www.php.net/manual/en/language.operators.precedence.php говорится, что ++ и -- операторы имеют очень высокий приоритет. Но, как я знаю, ++$x и $x++ не то же самое. Кроме того, $x++ должен иметь минимальное преимущество, так как она рассчитывается после того, как все это делается:Приоритет оператора пост-инкремента/descrement PHP

$x = 1; 
var_dump(1 and $x--); // and operator is one of last operators in the table, it will be executed before post decrement 

Таким образом, пост- операторы инкремента/декремента должны быть в этой таблице в нижней части?

+0

Вот почему я никогда не пишу такой код на любом языке, независимо от того, насколько компактен это :) –

+0

@ Золтан-Tamasi Я нахожусь собираюсь сделать экзамен ZCE, поэтому мне нужно это знать. В реальной жизни нормальный человек никогда бы этого не делал :) – avasin

ответ

2

Да. Если операторы помещаются перед переменной, переменная изменяется перед любым другим порядком операций.

$a=4; 
$x=++$a + 6; will result in $x=11 and $a=5 
$x=$a++ + 6; will result in $x=10 and $a=5 

Когда операторы находятся впереди, он имеет приоритет над всеми другими операторами. Вы можете найти простое объяснение на следующем сайте, а также:

http://www.php.net/manual/en/language.operators.increment.php