Пожалуйста, предоставьте мне правильное решение этого сценария с объяснением:Как мы можем определить Increment и декремента в PHP
$a = 5;
$c = $a-- + $a-- + --$a - --$a;
echo $c;
Что будет значение $c = 10
; Зачем?
Пожалуйста, предоставьте мне правильное решение этого сценария с объяснением:Как мы можем определить Increment и декремента в PHP
$a = 5;
$c = $a-- + $a-- + --$a - --$a;
echo $c;
Что будет значение $c = 10
; Зачем?
++
и --
производят одинаковый конечный результат - приращение или уменьшение переменной - применяется ли она раньше после имени переменной, разница возникает, когда она используется как часть более крупного оператора.
Рассмотрим это:
$a = 5;
$a--;
echo $a; // 4
$a = 5;
--$a;
echo $a; // 4
Итак, вы видите, что они производят один и тот же конечный результат - $a
получить уменьшается на единицу. Я уверен, что это то, чего вы ожидали.
Однако:
$a = 5;
echo $a--; // 5
echo $a; // 4
$a = 5;
echo --$a; // 4
echo $a; // 4
В этом примере, $a
по-прежнему уменьшается после операции, но порядок, в котором декремент происходит и значение используется отличается. Для $a--
значение используется до декремент, а для --$a
значение используется после.
Так для примера кода:
$a = 5; // Operations in order of occurence:
$c = $a-- // $c = 5; $a = 5 - 1 == 4;
+ $a-- // $c = 5 + 4 == 9; $a = 4 - 1 == 3;
+ --$a // $a = 3 - 1 == 2; $c = 9 + 2 == 11;
- --$a; // $a = 2 - 1 == 1; $c = 11 - 1 == 10;
echo $c; // 10
и снова, люди. вы отвечаете неправильно! first - $ a дает 2 не 3 – dmitry
@ confused-demon Я знаю, что я только что понял и отредактировал. – DaveRandom
Этот ответ неверен. Теперь вы ищете ссылку на правильный ответ. – DaveRandom
$a = 5 ; // $a = 5
$c = $a-- // $c = 5 $a = 4
+
$a-- // $c = 9 $a = 3
+
--$a // $c = 11 $a = 2
-
--$a // $c = 10 $a = 1
;
echo $c ; // $c = 10
$a--
Выражение является пост-декремент, что означает, что сначала возвращает $a
, а затем уменьшает $a
на единицу. Выражение --$a
является предварительным декрементом, который сначала уменьшает $a
по одному, а затем возвращает $a
.
Принимая во внимание это, это означает $c = 5 + 4 + 2 - 1 = 10
.
От прочтения сценария выше, и следующее утверждений
$var++, $var-- //Use value then apply incremnet, decrement
++$var, --$var // Increment, decrement then use vakue
вы можете переписать выражение для простоты понимания.
$a = 5;
$c = $a--; // $c = 5, $a = 4
$c += $a--; //$c = 9, $a = 3
$c += --$a // $c = 11, $a = 2 ($a drops to two before use)
$c -= --$a //$c = 10 $a = 1 ($a drops to one before use);
Что вы подразумеваете под "решением"? – Bojangles
На самом деле я просто хочу подтвердить, что то, что будет выполнено первым. pre декремент или пост декремент ... – PPS
Почему бы вам просто не выполнить его? – jeroen