Я что-то обнаружил.
echo $var1 , " and " , $var2;
такой же как:
echo $var1 . " and " . $var2;
Каков фактический оператор конкатенации строк в php? Должен ли я использовать .
или,?
.
оператор – оператор конкатенации. Ваш первый пример работает только потому, что функция echo (технически это языковая конструкция, но не позволяет разделить волосы) принимает более одного параметра и будет печатать каждый.
Итак, ваш первый пример – это вызов эха с несколькими параметрами, и все они печатаются, а второй пример, где все строки объединены и что одна большая строка печатается.
Фактическая конкатенация есть .
(Период). Используя ,
(запятая), вы передаете несколько аргументов функции echo
. (На самом деле, echo
не является функцией, а конструкцией языка PHP, что означает, что вы можете опустить круглые скобки вокруг списка аргументов, которые необходимы для фактических вызовов функций.)
В первом случае вы просто эхо 3 строки.
Во втором случае вы объединяете 3 строки, а затем эхо выводите результат.
Таким образом, ответ заключается в том, что для объединения строк вы должны использовать точку (.)
"". Другой просто записывает несколько значений независимо друг от друга, фактически не конкатенируя строку.
См. Также ссылку PHP echo , вариант «,» будет работать только с методами, принимающими несколько параметров.
"" concatenates "," может использоваться только для echo
который является языковой конструкцией (своего рода функцией)
см. также: Разница между периодом и запятой?
Использование запятой фактически не объединяет строки.
См. Ответ на другой вопрос.
«.» является правильным оператором конкатенации. «echo» также принимает «,», рассматривая его так, как будто вы передаете ряд аргументов методу «эхо», а затем повторяете их. Это не конкатенирование струн.
nop, потому что echo может принимать более одного аргумента, он будет печатать каждый аргумент