Как объединить две строки вместе в PHP?

101

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

Например:

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

Что мне делать (или обрабатывать), поэтому $result представляет собой комбинацию $data1 и $data2?

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

$result = "the color is red";
Теги:
string
variables
combinations

21 ответ

152
$result = $data1 . $data2;

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

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

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

Используйте оператор конкатенации ..=)

В 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

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

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

echo $string; // gives: the color is red
17

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

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

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

$result = "$data1 $data2";
9
$result = implode(' ', array($data1, $data2));

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

  • 0
    это очень полезно в случае, когда вы хотите создать список с разделителями, так как он проверяет, имеют ли переменные какие-либо значения $email_to = implode(', ', array($addr1, $addr2, addr3)); нет необходимости в if($addr != '') т. д.
  • 2
    Не выбирайте функции массива, если вы не должны. Потому что функции массива всегда медленнее операторов. Дополнительно; они используют больше оперативной памяти.
6

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

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";
6

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

$result = $data1." ".$data2;
  • 0
    Я бы предпочел использовать одинарные кавычки вместо двойных. ссылка на сайт
5
$result = $data1 . $data2;

попробуйте это

  • 3
    Это не правильный ответ. это приводит к "цвет isred". Кроме того, ваш ответ дублируется чьим-либо ответом, опубликованным несколько лет назад. Вниз проголосовал.
4

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

$full = $part1 . $part2;

В вашем примере вы хотите:

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

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

3

Это должно сработать для вас:

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

Ссылка: PHP String Variables

2
$s = "my name is ";

$s .= "keyur";

echo $s; 

результат:

my name is keyur
  • 7
    Добро пожаловать в StackOverflow. Хорошо, если вы ответите на вопросы. Однако, если вы это сделаете, пожалуйста, отформатируйте его правильно. Далее ваш ответ уже был дан. Как это добавляет дополнительную ценность к этому четырехлетнему посту?
  • 4
    Это просто повторение существующих ответов.
1

Вы можете сделать это с помощью PHP:

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

Это объединит две строки и путёт будет: "цвет красный!".

  • 0
    Ваши сфабрикованные входные значения не представляют собой входную строку OP, и вы повторяете решения, которые были указаны ГОДАМИ ранее. Это не вопрос javascript, поэтому совет не имеет значения. Этот пост не добавляет ценности на страницу.
  • 0
    @mickmackusa, хорошо, я обновил текст, вы правы, но я дал JS ответ здесь, потому что это очень простой вопрос, поэтому пользователь может узнать разницу
Показать ещё 1 комментарий
1

Это очень просто. Просто используйте

$result = $data1 . $data2;

В PHP . (concatenate) как дополнение.

1

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

$result = $data1 . "\r\n" . $data2;

1

Я не совсем понимаю, каковы ваши требования, но в основном вы можете отдельно определить две переменные, а затем объединить их вместе.

$data1="The colour is ";
$data2="red";

$result=$data1.$data2;

Таким образом, вы можете даже объявить $data2 как глобальный уровень, чтобы вы могли изменить его значение во время выполнения, например, он мог получить ответ "красный" из флажка.

0

Я считаю, что самый эффективный способ:

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

Если вы хотите реализовать локализацию, вы можете сделать что-то вроде этого:

$translationText = "the color is %s";
$translationRed  = "red";
$result = sprintf($translationText, $translationRed);

Это немного медленнее, но оно не предполагает грамматических правил.

0

его очень простая

с помощью. (точка) мы можем комбинировать две или более переменной в php

<?php
$data1 = "the color is";
$data2 = "red";

echo $data1." ".$data2;

?>
0

1.Concatenate строка (пробел между каждой строкой)

Фрагмент кода:

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1.$txt2 ;
 echo  $result. "\n";
 ?>  

Выход: SachinTendulkar

2.Concatenate строка, где существует пространство

Фрагмент кода:

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1." ".$txt2; 
 echo  $result. "\n";
?>  

Вывод: Sachin Tendulkar

  1. Объединение строки с помощью функции printf.

Фрагмент кода:

  <?php
 $data1 = "Sachin";
 $data2 = "Tendulkar";
 printf("%s%s\n",$data1, $data2);
 printf("%s %s\n",$data1, $data2); 
?>

Вывод:
Тендулкар
Сахин Тендулкар

  • 2
    Что предлагает этот ответ, который еще не был предоставлен другими ответами?
-1

Насколько я знаю, у вас есть 2 способа сделать это:

. оператор, который означает конкатенацию:

echo $var1 . ' ' . $var2;

оператор, который означает несколько параметров:

echo $var1 , ' ' , $var2;

В этом случае оба выводятся так же, поскольку echo принимает несколько параметров. Но в случае return, где он принимает только 1, работает только '.'.

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

Таким образом, вы можете делать.

-2
$data1 = "Hello";
$data2 = "Moto!";
$result = $data1.$data2;
echo $result;

Мы получим результат как Hello Moto!, поскольку String, хранящийся в $data1 и в $data2, объединяются друг с другом один за другим с помощью . (точка)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню