PHP Прокомментировать
В строке "$assoc = 3 * 3 % 5;" используется сразу 3 оператора: присвоение "=", умножение "*" и деление по модулю "%". Из таблицы видно, первый оператор в выражении (считается слева-направо) - присвоение. Это "правый" и наименее приоритетный оператор, значит в первую очередь надо вычислить правый операнд ("3 * 3 % 5"). Правый операнд - выражение с двумя "левые" операторами равного приоритета. Поэтому вычисление производится просто последовательно слева направо. Результат вычисления правого операнда становится операндом оператора присоения. Результат выполнения всех операций - переменная $assoc получает значение 4.
кто разъяснит значение этого текста, тому 100 рублей на телефон
Тут всё подробно расписано. Ассоциативность влияет на порядок вычисления операндов бинарных операторов.
Например,
(выражение1) оператор (выражение2)
Если ассоциативность левая, то вычисление идёт в "обычном" порядке, сначала левый операнд "выражение1", потом операнд "выражение2".
Если ассоциативность правая, то наоборот, сначала вычисляется правый операнд "выражение2", потом уже "выражение1".
В PHP подавляющее большинство операторов имеют левую ассоциативность. Даже операторы присваивания, которые в документации обозначены как правоассоциативные во многих случаях вычисляют сначала левый операнд.
Тут и так разжевано больше некуда.
Старая задача: сколько будет 2+2*2? Ответ: 6. Почему? Потому что умножение выполняется раньше сложения, т. е. умножение приоритетнее.
Здесь - то же самое, только операций стало больше.
покольку приоритет операций равен, то выполнится сначала 3*3, потом от результат узнаем деление по модулю на 5 и окончательный результат присваиваем в переменную $assoc