Как объединить две строки вместе в PHP? - PullRequest
118 голосов
/ 01 декабря 2011

На самом деле я не знаю, как описать то, что я хотел, но я покажу вам:

Например:

$data1 = "the color is";
$data2 = "red";

Что я должен делать (или обрабатывать), чтобы $Результатом является комбинация $data1 и $data2?

Желаемый результат:

$result = "the color is red";

Ответы [ 15 ]

183 голосов
/ 01 декабря 2011
$result = $data1 . $data2;

Это называется конкатенацией строк.В вашем примере не хватает пробела, поэтому для этого вам понадобится:

$result = $data1 . ' ' . $data2;
73 голосов
/ 23 марта 2015

Существует несколько способов объединить две строки вместе.

Использовать оператор объединения ..=)

В PHP . - этооператор конкатенации, который возвращает конкатенацию его правого и левого аргументов

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

Если вы хотите добавить строку к другой строке, вы должны использовать оператор .=:

$data1 = "the color is ";
$data1 .= "red"

Сложный (фигурный) синтаксис / строки в двойных кавычках

В PHP переменные, содержащиеся в строках в двойных кавычках, интерполируются (то есть их значения «заменяются» для переменной).Это означает, что вы можете поместить переменные вместо строк и просто поставить пробел между ними.Фигурные скобки проясняют, где находятся переменные.

$result = "{$data1} {$data2}";

Примечание: в вашем случае это также будет работать без скобок:

$result = "$data1 $data2";

Использовать sprintf() илиprintf()

sprintf() позволяет нам форматировать строки, используя мощные опции форматирования.Для такой простой конкатенации это излишне, но удобно, если у вас есть сложная строка и / или вы хотите выполнить некоторое форматирование данных.

$result = sprintf("%s %s", $data1, $data2);

printf() делает то же самое, но сразу отображаетвывод.

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;

Heredoc

Heredocs также можно использовать для объединения переменных в строку.

$result= <<<EOT
$data1 $data2
EOT;

Используйте , с echo()

Это работает только при выводе содержимого, а не при назначении переменной.Но вы можете использовать запятую, чтобы отделить список выражений для PHP, и использовать строку с одним пробелом в качестве одного из этих выражений:

echo $data1, ' ', $data2;
18 голосов
/ 26 ноября 2014

Никто не упомянул об этом, но есть другая возможность.Я использую его для огромных запросов SQL.Вы можете использовать. = Оператор:)

$string = "the color is ";
$string .= "red";

echo $string; // gives: the color is red
18 голосов
/ 01 декабря 2011

Объедините их с помощью оператора .:

$result = $data1 . " " . $data2;

Или используйте интерполяцию строки:

$result = "$data1 $data2";
9 голосов
/ 19 ноября 2014
$result = implode(' ', array($data1, $data2));

является более общим.

8 голосов
/ 01 декабря 2011

Другая доступная форма:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";
6 голосов
/ 01 декабря 2011

Вы можете попробовать следующую строку кода

$result = $data1." ".$data2;
5 голосов
/ 20 ноября 2016
$result = $data1 . $data2;

попробуйте

5 голосов
/ 22 июня 2016

Вы можете сделать это, используя PHP:

$txt1 = "the color is";
$txt2 = " red!";
echo $txt1.$txt2;

Это объединит две строки, и результат будет: "цвет красный!".

4 голосов
/ 01 декабря 2011

Точка используется для объединения строк. Простой пример преобразования двух строковых переменных в одну переменную:

$full = $part1 . $part2;

В вашем примере вы хотели бы сделать:

$result = $data1 . ' ' . $data2;

Вы заметите, что я добавил строку из одного пробела между двумя переменными. Это потому, что ваш оригинальный $data1 не заканчивался пробелом. Если бы вы объединили их без него, ваша переменная $result в итоге выглядела бы как the color isred.

...