echo 6 . '-' . 6;
выводит 6-6 пока всё хорошо..
echo 6-1 . '-' . 6;
показывает 5-6 опять всё ОК.
echo 6-1 . '-' . 6*2;
5-12 - полёт нормальный
А теперь немного уличной магии

Что выведет этот код: ??
echo 6-1 . '-' . 6-1;
а этот?
echo 6-1 . '-' . 6+1;
а такой?
echo 6-1 . '-' . 99999-1;
PS
расстановка скобочек помогает вернуться к здоровой логике. Было подозрение что это из-за
UPD
если это баг php, то на bugs.php.net найти его не смог
Спустя 25 минут, 31 секунда (5.04.2011 - 10:34) Zerstoren написал(а):
тоже самое
$as = 'test '.5 - 2.' ggg';
только скобки дают логику действию
Не забывайте что действия идут слева на право и сверху вниз.
$as = 'test '.5 - 2.' ggg';
только скобки дают логику действию
Не забывайте что действия идут слева на право и сверху вниз.
Спустя 12 минут, 22 секунды (5.04.2011 - 10:47) kirik написал(а):
Цитата (Zerstoren @ 5.04.2011 - 02:34) |
Не забывайте что действия идут слева на право и сверху вниз. |
Спасибо за напоминание...
В чём логика-то? Почему
echo 'test ' . 5 * 2 . ' ggg';и
echo 'test ' . 5 / 2 . ' ggg';работают как и ожидается, а
echo 'test ' . 5 + 2 . ' ggg';и
echo 'test ' . 5 - 2 . ' ggg';- косячат?
Спустя 4 минуты, 47 секунд (5.04.2011 - 10:52) kirik написал(а):
Кажется это я туплю.. Это действительно из-за приоритетности операций. Сначала идет умножение и деление, затем идет конкатенация, и потом сложение и вычитание.
Пошёл спать, а завтра перечитывать ман (если там такое есть конечно ага..)..
Пошёл спать, а завтра перечитывать ман (
Спустя 56 минут, 4 секунды (5.04.2011 - 11:48) Trianon написал(а):
непуганные идиоты, прасти госпади.
Я имею в виду разработчиков.
18 строк приоритета накатать, и не выделить для конкатенации отдельной строки...
Впрочем, после чехарды с ассоциативностью условной операции, с взятием ссылки от результата операции присваивания, я уже ничему не удивляюсь.
Пишешь, как по минному полю ходишь...
Единственное, что спасает - скобки в местах, хотя бы слегка подозрительных, уже ставлю на автомате.
Я имею в виду разработчиков.
18 строк приоритета накатать, и не выделить для конкатенации отдельной строки...
Впрочем, после чехарды с ассоциативностью условной операции, с взятием ссылки от результата операции присваивания, я уже ничему не удивляюсь.
Пишешь, как по минному полю ходишь...
Единственное, что спасает - скобки в местах, хотя бы слегка подозрительных, уже ставлю на автомате.
Спустя 3 часа, 32 минуты, 22 секунды (5.04.2011 - 15:20) inpost написал(а):
kirik
А вот интересный глюк с тернарным оператором, я тебе уже писал, повторюсь тут, на этот раз нашел причину глюка:
Так вот, данные вместо того, чтобы записаться в переменную - выведутся как через echo, а если взять в скобки:
А вот интересный глюк с тернарным оператором, я тебе уже писал, повторюсь тут, на этот раз нашел причину глюка:
$temp = 'Лалалала'.$i == 7 ? '-Правда-' : '-Ложь-'.'Ллялялял';
Так вот, данные вместо того, чтобы записаться в переменную - выведутся как через echo, а если взять в скобки:
$temp = 'Лалалала'.($i == 7 ? '-Правда-' : '-Ложь-').'Ллялялял';Такой вариант уже попадёт в переменную.
Спустя 2 часа, 30 минут, 45 секунд (5.04.2011 - 17:51) kirik написал(а):
Цитата (Trianon @ 5.04.2011 - 03:48) |
Пишешь, как по минному полю ходишь... |
Так и есть.. особенно когда ман невнимательно читаешь

Конечно это ничего не изменит, но я с тобой согласен. У точки должен быть приоритет ниже чем у арифметических сложения и вычитания, но выше чем у <<, >>.
Цитата (inpost @ 5.04.2011 - 07:20) |
А вот интересный глюк с тернарным оператором, я тебе уже писал, повторюсь тут....данные вместо того, чтобы записаться в переменную - выведутся как через ech |
Ты точно мне писал по этому поводу?)) А то у меня при любых значениях i - ничего не отображается..
Кстати полезно иногда вот так тупить. Я не знал что у && и and разный приоритет (ровно как и у || и or).
Кстати там ещё в верхнем комменте забавный пример
