sorry_i_noob
@sorry_i_noob

Почему если в php сложить число и текст, то выведется только число. Текст и число, то все равно только число?

Здравствуйте.
Есть такой код:
echo '123' + 'abc' + '<br>';
echo 'abc' + '123' + '<br>';

В обоих строчках выведется только "123". И при том, на одной строке (до '<br>'не дойдет).
  • Вопрос задан
  • 1488 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 4
@vanillathunder
В php + это сложение, конкатинация строк будет ..
echo '123' . 'abc' . '<br>';
echo 'abc' . '123' . '<br>';
Ответ написан
Комментировать
xISRAPILx
@xISRAPILx
Кратко не получится
Всё дело в приведении типов, любая не намберик(состоит только из числовых значений) строка в PHP ровна нулю.
Ответ написан
@rPman
Плюс в php всегда возвращает число. Если хотите объединение как строк, используйте оператор точка '.'.
echo 123.'xxx'.987;

Осторожно так как точка ещё и десятичный разделитель

ещё неплохой вариант использовать автоматическую подстановку значений переменных, если строка в двойных ковычках то $ в строке обрабатывается с заменой на заявление переменной.
$xyz='asd';
echo "\$xyz='$xyz'";

выведет
$xyz='asd'
Ответ написан
Комментировать
Kasperenysh
@Kasperenysh
Рецидив в особо острой форме))
Во первых в php знак "+" означает именно сложение, математическое, для сложения (соединения, или правильнее конкатенации) строк используется оператор точка "." Т.е. в данном случае вы пытаетесь сделать именно математическую операцию. PHP - слаботипизированный язык, он ваши строки '123', 'abc', '<br>', а это именно строки, т.к. все, что заключено в " или ' расценивается как строка, язык пытается привести к числу, и в итоге получаем 123 из перво строки, и нули из последующих, т.к. это невозможно привести к числу, в итоге имеем 123+0+0=123
Ну и во вторых, чтобы получить строку 123abc с переносом строки нужно проводить конкатенацию... например так:
echo 123.'abc'.'<br>';
Или так:
echo '123'.'abc'.'<br>';
В первом случае 123 это число, во втором строка... но результат будет одинаковый
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект