it-roy-ru.com

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

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

Например:

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

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

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

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

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

$result = $data1 . ' ' . $data2;
172
Logan Serman

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

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

В 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;
67
John Conde

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

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

echo $string; // gives: the color is red
19
codelame

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

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

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

$result = "$data1 $data2";
17
Jeremy Ruten
$result = implode(' ', array($data1, $data2));

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

9
Why 50 points to comment...

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

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

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

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

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

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

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

5
sunil
$result = $data1 . $data2;

попробуй это

5
Farhan

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

$full = $part1 . $part2;

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

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

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

4
Aken Roberts

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

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

Ссылка: PHP Строковые переменные

3
Robert
$s = "my name is ";

$s .= "keyur";

echo $s; 

результат: 

my name is keyur
2
keyur sojitra

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

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

$result=$data1.$data2;

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

1
Yoosuf

1.Связать строку (пробел между каждой строкой) 

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

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

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

Результат: СачинТендулкар

2.Связать строку, где есть место 

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

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

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

Результат: Сачин Тендулкар

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

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

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

Результат:
Тендулкар
Сачин Тендулкар 

0
rashedcs

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

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

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

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

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

0
Pedro Amaral Couto