Откуда такой результат (инкремент и сложение)?

Тема в разделе "Как сделать...", создана пользователем zek24, 9 мар 2014.

Статус темы:
Закрыта.
  1. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    776
    Симпатии:
    230
    PHP:
    <?php
    $a 
    6;
    $a .= $a++ + $a++;
    echo 
    $a
    ?>
    Сначала попробуйте сами, в уме, прикинуть результат.
    Потом сравнить с правильным))
     
    latteo нравится это.
  2. Alex.Volk

    Alex.Volk Охотник

    Регистр.:
    16 мар 2012
    Сообщения:
    371
    Симпатии:
    1.023

     
    Последнее редактирование модератором: 10 мар 2014
  3. Darkness

    Darkness Постоялец

    Регистр.:
    21 янв 2013
    Сообщения:
    146
    Симпатии:
    69
     
    Последнее редактирование модератором: 10 мар 2014
    latteo нравится это.
  4. Vishez

    Vishez

    Регистр.:
    19 авг 2013
    Сообщения:
    169
    Симпатии:
    81
    Хм а разве инкремент не имеет больший приоритет чем сложение? http://www.php.net/manual/ru/language.operators.precedence.php
    Я думаю так получается потому, что сначала выполняется инкремент, потом сложение, потом присвоение с конкатенацией.
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.403
    Симпатии:
    1.185
    Приоритет у инкремента большый, но ассоциативность другая. Инкремент над переменной выполняется после сложения.

    Darkness расписал всё более-менее понятно, закрываю тему.
     
Статус темы:
Закрыта.