Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: в чем разница между $a++ и ++$a?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Master_pascal
Отправлено: 07 Января, 2013 - 12:37:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+][+][+][+][+]


какая разница между $a++ и ++$a
вообще не понимаю
 
 Top
DelphinPRO
Отправлено: 07 Января, 2013 - 12:47:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




в первом случае сначал переменная используется, а потом делается инкремент, во втором - наоборот

PHP:
скопировать код в буфер обмена
  1. $a = $b = 1;
  2. echo $a++, '<br>'; // 1
  3. echo ++$b, '<br>'; // 2


ps
поясню, на всякий случай Улыбка
переменная $a равна 1, она сначала выводится на экран, потом увеличивается
переменная $b равна 1, она сначала увеличивается, потом выводится на экран

(Отредактировано автором: 07 Января, 2013 - 12:49:34)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Мелкий Супермодератор
Отправлено: 07 Января, 2013 - 12:50:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Происходящее легче описать парой функций:
PHP:
скопировать код в буфер обмена
  1. //++$i
  2. function preincr(&$i) {
  3. $i = $i+1;
  4. return $i;
  5. }
  6. //$i++
  7. function postincr(&$i) {
  8. $oldI = $i;
  9. $i = $i+1;
  10. return $oldI;
  11. }


Разница в возвращаемом значении, ++$i вернёт увеличенное значение, $i++ увеличит переменную, но вернёт старое значение.


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 07 Января, 2013 - 12:52:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




оба оператора увеличивают переменую на 1, но только ++$a возвращает уже увеличеное число, а $a++ нет. Пример
PHP:
скопировать код в буфер обмена
  1. $a = 0;
  2. echo $a++, '<br>';
  3. echo $a, '<br><br>';
  4.  
  5. $b = 0;
  6. echo ++$b, '<br>';
  7. echo $b;

Ну зачем нужен ++$a, обьяснять не нужно, он просто увеличивает число, а вот $a++ используется примерно в таких ситуациях
PHP:
скопировать код в буфер обмена
  1. $b = $a;
  2. ++$a;
  3. // можно сократить до
  4. $b = $a++;

Ну тоесть вам нужно получить текущее значение переменой и затем его увеличить.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB