За последние 24 часа нас посетили 18965 программистов и 1590 роботов. Сейчас ищут 1033 программиста ...

Операции инкремента и декремента

Тема в разделе "PHP для новичков", создана пользователем evgen777, 26 ноя 2010.

  1. evgen777

    evgen777 Активный пользователь

    С нами с:
    25 сен 2010
    Сообщения:
    17
    Симпатии:
    0
    Не могу понять, если думать логически то почему результат вот этого кода
    PHP:
    1. <?php
    2. = 10;
    3. $b = ++;
    4. echo "а=$а, b=$b"; // выведет а=11, b=10
    5. ?>
    получается вот это
    Код (Text):
    1. а=11, b=10
    Ведь по условию $а++ — увеличение переменной $а на 1;
    $а-- — уменьшение переменной $а на 1.
    а в данном примере $b=$a++, то есть к $a прибавляется 1
     
  2. kotyara

    kotyara Активный пользователь

    С нами с:
    17 фев 2010
    Сообщения:
    163
    Симпатии:
    0
    потому что сначала выполняется операция присвоить значение, а потом уже инкремент если написать
    PHP:
    1. $b = ++$a
    то будет как ты и ожидаеш
     
  3. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    сначала к $b присваивается значение 10, потом уже идет увеличение $a на единицу. Чтобы $b была такой же как и $a:
    $a = 10;
    $b = ++$a;

    kotyara
    трахтибидох, опередил))
     
  4. evgen777

    evgen777 Активный пользователь

    С нами с:
    25 сен 2010
    Сообщения:
    17
    Симпатии:
    0
    Ну с a=11 все понятно, а почему b=10 ведь условие $b = $а++ если логически думать то тоже получается b=11
     
  5. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Приоритет:
    ++$var
    $var = $var
    $var++


    Т.е. в случае
    $b = $a++
    Сначала выполняется присвоение значения, а потом только инкремент.