![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
BIG BROTHER |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 9.12.2004 Где: Россия, Москва Репутация: 2 Всего: 4 |
Не очень понимаю логику вычислений. Выходит 7, но по моим расчетам там должно быть 5... Может я не очень понимаю как функционируют эти выражения? Насколько я знаю $i++ — производит вычисление, затем увеличение значения на единицу, ++$i — наоборот, сразу увеличивает. Я не прав? Как тогда работает конструкция "+=" (что она делает — я знаю, интересен порядок выполнения). Это сообщение отредактировал(а) BIG BROTHER - 11.2.2010, 11:11 --------------------
Mess with the best, die like the rest |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Как функционируют выражения, надо проверять другим кодом
к примеру, чтобы выяснить, как функционирует $i++, надо написать код с $i++ логично? |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
5 будет вот так
-------------------- Amazing ![]() |
|||
|
||||
Guedda |
|
||||||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 13 Всего: 78 |
Получается так:
1. 1+2 = 3
2. 4+3 = 7
Вот так считается. Первое действие - до вычисления. Второе действие - после вычисления. Добавлено через 1 минуту и 59 секунд Даже заведем для этого еще одну переменную ($p),тогда
Вот так будет наглядней. -------------------- Ll 2 |
||||||
|
|||||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
BIG BROTHER, ты понимаешь, что запостил в раздел по профи примитивный вопрос по синтаксису?
http://ru.php.net/manual/en/language.opera....precedence.php Тему хотел переместить, но кто-то это уже сделал )) Это сообщение отредактировал(а) nerezus - 11.2.2010, 13:40 |
|||
|
||||
awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
||||
|
||||
sTa1kEr |
|
||||||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Выражение $i += N можно записать как $i = $i + N. Соответственно,
можно записать как:
Далее ++$i инкрементирует $i и возвращает $i, соответственно выражение можно записать как $i += 1 или $i = $i + 1
А $i++ наоборот, сначала возвращает значение $i, а затем инкрементирует его, в общем случае это можно записать как ($i = $i + N) - N, или ($i = $i + 1) - 1. // естественно PHP на самом деле ничего не вычитает, это только что бы смоделировать формулу
Ну а дальше все в соответствии с приоритетами:
http://php.net/operators.increment Это сообщение отредактировал(а) sTa1kEr - 11.2.2010, 13:57 |
||||||||||
|
|||||||||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Ну нет.
Это далеко не примитивный вопрос по синтаксису. Скорее вопрос по работе компилятора. Если смотреть на код, а не на вопрос Гм. Раньше я видел другое объяснение. Объяснение sTa1kEr-а мне нравится больше Это сообщение отредактировал(а) Ипатьев - 11.2.2010, 14:10 |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
Ипатьев, ну в разделе по С++(к примеру) это был бы вопрос по компилятору, т.к. синтаксис не определяет ответ, и на C++ были бы верными ответы 5, 6, 7, 666. В PHP же это определено, но на практике применяется лишь дураками. Былинными дураками. Былинный - т.к. в реальной жизни таких не бывает.
А вот откуда такой вопрос взялся - не понятно. Скорее всего какой-то сноб на собеседовании задал?) Совет топикстартеру: не ходи к ним, у них плохо. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |