Глобатор » 2011.10.11 15:34 |
Даты и времени ) |
Oliver » 2011.10.11 15:39 |
держи)) |
Gemorroj » 2011.10.11 15:51 |
ппц.. нужно при регистрации проверку вводить типа что будет если echo print 1; |
Глобатор » 2011.10.11 16:45 |
Нету?)) Добавлено спустя 1 минуту 24 секунды: Gemorroj , почему? |
TLENS » 2011.10.11 16:48 |
Gemorroj написал:ппц.. нужно при регистрации проверку вводить типа что будет если echo print 1;
А правда что будет? если print вернет true то результат будет 11 |
Gemorroj » 2011.10.11 17:13 |
http://php.net/print
manual написал:Returns 1, always.
|
TLENS » 2011.10.11 17:17 |
Кстати ответь какой результат будет без мануала: i = 10; i = i++; сколько будет содержать i? Вопрос в том что инкремент произойдет после присваивания но но я не понял логики. |
Gemorroj » 2011.10.11 18:01 |
ну а собсно, этим и отличается префиксный и постфиксный инкремент/декремент. такое вполне нужно бы знать и без мануала. |
TLENS » 2011.10.11 23:11 |
Да я не за это, "префиксный и постфиксный инкремент/декремент" это уже давно знаю. если бы код был таков i = 10; j = i ++; я не задумываясь ответил бы что j = 10 а i = 11; Когда мне загадали эту загадку я не задумываясь ответил что будет 11 Почему: Ведь переменной i присваивается 10 потом снова 10 и после присваивания эта же переменная увеличивается. Логики вообще не пойму. Не знаю как тебе обьяснить вот код может поймешь о чем я.
Вот я думал что полностью понимаю логику апача. Но оказывается все не так. |
Gemorroj » 2011.10.12 11:02 |
я вот не понимаю твое негодование. именно так и работает ПОСТфиксный инкремент. |
POFIGISST » 2011.10.12 11:19 |
чет не понял,почему тут
i = 10; j = i ++; j будет равно 10 ? если идет что i = 10 а j = i ++,то это j должно идти 10 и +1 ,а Дима написал: "i = 10; j = i ++; я не задумываясь ответил бы что j = 10 а i = 11;" |
POFIGISST » 2011.10.12 12:46 |
"я не задумываясь ответил бы что j = 10 а i = 11;" почему ты написал что j равна 10 если там идет "i = 10; j = i ++; ?(( |
TLENS » 2011.10.12 13:22 |
POFIGISST Понимаешь $j = $i ++; Сначало присваивается Значение i в j а потом уже i увеличивается на 1; Если бы $j = ++ $i тогда да. Вопрос в другом я не пойму последовательности выполнения кода
Gemorroj написал:я вот не понимаю твое негодование.
Вот смотри распишу тебе дебаг. i = 10; i = i ++; debug: 1)
i = 10; i = i++;
i присваивается 10 (i = 10;) __________________ 2) шаг
i = 10; i = i ++;
i присваивается 10 (i = i;) __________________ 3) Ну и третий шаг когда переменной i присвоено 10 выполняется ее инкремент.
i = 10; i = i ++;
???????
Только пожалуйста не надо третий раз писать ++ i; и i ++; это две разные вещи, не то я не выдержу и разобью свою клаву. |
TLENS » 2011.10.12 13:38 |
Паша короче забей. Я тоже начал себе голову ломать. Пойду делом займусь. |
POFIGISST » 2011.10.12 13:46 |
аааа,спасибо,я думал что так тоже сразу увеличивается на i ((теперь буду знать(( |
Gemorroj » 2011.10.12 13:48 |
Ну, я все же еще раз повторюсь, что именно так работают префиксный и постфиксный инкремент. Просто нужно запомнить это отличие. Если бы его не было, не было бы и 2-х типов инкремента. Что касается низкоуровнего разбора такого поведения, то я могу только предполагать. Мои мысли: На 2 шаге мы присвоили некой области памяти i значение 10. Затем сделали инкремент старой области памяти i. Но поскольку i находится в новой области памяти, инкремент прошел "в никуда". |
TLENS » 2011.10.12 13:57 |
Gemorroj написал:Мои мысли: На 2 шаге мы присвоили некой области памяти i значение 10. Затем сделали инкремент старой области памяти i. Но поскольку i находится в новой области памяти, инкремент прошел "в никуда".
Вот что я имел в виду. А не инкремент и декремент. Просто мне загадали загадку типо как ребенку что я незнаю как работает инкремент. Но я вообще задумывался именно в то как поведет себя код т.е. что последнее присвоится. Кстати тот кто загадал мне эту загадку не смог ответит на тот же вопрос что я задал тебе. Эх как камень с души. |