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
Форумы портала PHP.SU :: Версия для печати :: Вроде просто но...
Форумы портала PHP.SU » » Вопросы новичков » Вроде просто но...

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

1. ytrewq123 - 18 Декабря, 2016 - 11:30:51 - перейти к сообщению
Здравствуйте!
Вот какой вопрос.
Вроде просто но никак.

echo 'SUMMA 2+5 = ' . 2+5;
Почему выводит просто 5.

Так echo 'SUMMA 2+5 = '; показывает SUMMA 2+5 =
Так echo 2+5; показывает 7

А так echo 'SUMMA 2+5 = ' . 2+5;
Выводит просто 5.
2. Мелкий - 18 Декабря, 2016 - 12:04:17 - перейти к сообщению
Равный приоритет операторов и фокусы приведения типов. В 7.1 вроде уже не будет происходить тихо, предупреждение выдаст.

Сначала выполнилась конкатенация, получилось выражение

Операция +, оба операнда приводятся к числу. Строка приводится к 0, т.к. не начинается с числа.
0+5 = 5, это и выведено.

Используйте явный приоритет
3. ytrewq123 - 18 Декабря, 2016 - 15:02:25 - перейти к сообщению
Большое спасибо Вам за пояснение. А то сидел ломал голову что да как. Учту на будущие. Ибо до 7... на некоторых хостах ещё далеко. Спасибо.
4. Merrym - 18 Декабря, 2016 - 15:20:37 - перейти к сообщению
Я бы советовал, везде где выводится не правильное значение, а ты уверен - что оно не правильно, капай в сторону приоритетов.
5. ytrewq123 - 18 Декабря, 2016 - 17:10:29 - перейти к сообщению
Merrym пишет:
Я бы советовал, везде где выводится не правильное значение

Спасибо. Когда Мелкий пояснил, я понял в чём дело и действительно это логично и ясно. А так думал что такое, почему.

 

Powered by ExBB FM 1.0 RC1