Другие ответы просто указывают решение, этот ответ объясняет, что происходит и как предотвратить непредвиденное поведение двумя способами.
Оператор точки имеет тот же приоритет, что и + и -.
Учитывая
$number1 = 10;
$number2 = 20;
echo "<br> ".$number1+$number2;
Используемая вами точка - это оператор string , а не числовой оператор.Что происходит:
"<br>"
и 10
объединяются с помощью оператора точки до "<br>10"
. "<br>10"
добавляется к $ number2 (20
) счисловой оператор +. - Непустые нечисловые строки преобразуются в 0. Значение
"<br>10" = 0
. 0+20
приводит к 20, что составляет строку 3: echo 20;
Эту проблему можно решить, изменив приоритеты, используя скобки echo "<br> ". ($number1 + $number2);
или менее видимый параметр, передав больше аргументов в языковую конструкцию echo
: echo "<br> ", $number1 + $number2;
(обратите внимание на запятую вместо точки).Каждый аргумент будет оцениваться первым, прежде чем выводить их все вместе.
Лично я использую второй вариант (несколько аргументов) в подобных случаях.