如何在PHP中将两个字符串组合在一起?

How can I combine two strings together in PHP?

提问人:glennanyway 提问时间:12/1/2011 最后编辑:Peter Mortensenglennanyway 更新时间:9/28/2022 访问量:714583

问:

我实际上不知道如何描述我想要的东西,但我会告诉你:

例如:

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

我应该做什么(或处理),所以$result是 和 的组合?$data1$data2

期望的结果:

$result = "the color is red";
PHP 字符串 变量 组合

评论


答:

289赞 Logan Serman 12/1/2011 #1
$result = $data1 . $data2;

这称为字符串连接。不过,您的示例缺少空格,因此具体而言,您需要:

$result = $data1 . ' ' . $data2;
7赞 user710502 12/1/2011 #2

您可以尝试以下代码行

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

评论

0赞 Jack 3/2/2019
我宁愿使用单引号而不是双引号。链接
22赞 Paige Ruten 12/1/2011 #3

将它们与运算符连接起来:.

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

或者使用字符串插值:

$result = "$data1 $data2";
4赞 Robert 12/1/2011 #4

这应该适合您:

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

参考:PHP 字符串变量

5赞 Aken Roberts 12/1/2011 #5

句点用于连接字符串。将两个字符串变量转换为单个变量的简单示例:

$full = $part1 . $part2;

在您的示例中,您需要执行以下操作:

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

你会注意到我在两个变量之间添加了一个空格的字符串。这是因为您的原件没有以空格结尾。如果你在没有它的情况下将它们组合在一起,你的变量最终将看起来像 .$data1$resultthe color isred

3赞 Yoosuf 12/1/2011 #6

我不太清楚您的要求是什么,但基本上您可以分别定义这两个变量,然后将它们组合在一起。

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

$result=$data1.$data2;

通过这样做,您甚至可以将 $data 2 声明为全局级别,以便您可以在执行期间更改其值。例如,它可以从复选框中获取答案“红色”。

11赞 Tim G 12/1/2011 #7

另一种可用的形式是这样的:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";
15赞 Why 50 points to comment... 11/19/2014 #8
$result = implode(' ', array($data1, $data2));

更通用。

评论

2赞 Aba 1/6/2016
这在您想要制作分隔列表的情况下非常有用,因为它会检查变量是否有任何值,不需要等$email_to = implode(', ', array($addr1, $addr2, addr3));if($addr != '')
4赞 MERT DOĞAN 10/20/2016
除非必须,否则不要选择数组函数。因为数组的函数速度都比运算符慢得多。此外;他们使用更多的内存。
30赞 codelame 11/26/2014 #9

另一种可能性是运营商。我正在将它用于大型 SQL 查询。.=

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

echo $string; // Gives: the color is red

评论

2赞 reducing activity 7/17/2019
“我正在用它来进行大型 sql 查询”——请注意,这是一种典型的获取 en.wikipedia.org/wiki/SQL_injection
0赞 codelame 9/6/2019
以这种方式或其他方式连接字符串将如何在我的参数化查询中为我提供 SQL 注入?
2赞 reducing activity 9/15/2019
手动构建整个 SQL 查询(至少由“对于大型 sql 查询”建议)是不行的。 只准备参数,而不是整个查询应该可以避免这种特定的安全风险。
139赞 John Conde 3/24/2015 #10

有几种方法可以将两个字符串连接在一起。

使用串联运算符(和..=)

在 PHP 中是串联运算符,它返回其左右参数的串联.

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

如果要将一个字符串附加到另一个字符串,请使用运算符:.=

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

复杂(卷曲)语法/双引号字符串

在 PHP 中,包含在双引号字符串中的变量是插值的(即它们的值被“交换”为变量)。这意味着您可以将变量放在字符串的位置,并在它们之间放置一个空格。大括号清楚地表明了变量的位置。

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

注意:在您的情况下,这也可以在没有大括号的情况下工作:

$result = "$data1 $data2";

您还可以将字符串中的数组值连接起来:

$arr1 = ['val' => 'This is a'];
$arr2 = ['val' => 'test'];
$variable = "{$arr1['val']} {$arr2['val']}";

使用或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;

赫雷多克

Heredocs 还可用于将变量组合成一个字符串。

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

使用,echo()

这仅在回显内容而不分配给变量时才有效。但是你可以使用逗号来分隔一个表达式列表,以便 PHP 回显,并使用一个带有一个空格的字符串作为这些表达式之一:

echo $data1, ' ', $data2;
3赞 keyur sojitra 3/22/2016 #11
$s = "my name is ";

$s .= "keyur";

echo $s; 

结果:

my name is keyur

评论

9赞 T3 H40 3/22/2016
欢迎使用 StackOverflow。如果你回答问题,那就太好了。但是,如果您这样做,请正确格式化。此外,你的答案已经给出了。它如何为这个已有四年历史的帖子增加附加价值?
6赞 Pang 9/22/2016
这只是现有答案的重复。
7赞 sunil 6/22/2016 #12

您可以使用 PHP 执行此操作:

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

这将合并两个字符串,输出将是:“颜色是红色的!

评论

1赞 mickmackusa 7/6/2018
您捏造的输入值并不代表 OP 的输入字符串,并且您正在呼应多年前所述的解决方案。这不是一个javascript问题,因此建议是无关紧要的。这篇文章没有为页面增加任何价值。
0赞 sunil 7/6/2018
@mickmackusa,好的,我更新了文本,你是对的,但我在这里给出了 js 答案,因为这是一个非常基本的问题,因此用户可以了解其中的区别
1赞 mickmackusa 7/6/2018
您的更新未使用 OP 的文本。不要为 php 问题提供 javascript 解决方案。此答案的格式很差,不会为页面增加任何价值。
4赞 Farhan 11/20/2016 #13

试试这个:

$result = $data1 . $data2;

评论

6赞 Jason Liu 8/25/2018
这不是正确的答案。它的结果是“颜色是红色的”。此外,您的答案与某人多年前发布的答案重复。投了反对票。
-1赞 rashedcs 6/3/2017 #14
  1. 连接字符串(每个字符串之间的空格)

    代码片段:

    <?php
        $txt1 = "Sachin";
        $txt2 = "Tendulkar";
    
        $result = $txt1 . $txt2 ;
        echo $result . "\n";
    ?>
    

    输出: SachinTendulkar

  2. 连接存在空格的字符串

    代码片段:

     <?php
         $txt1 = "Sachin";
         $txt2 = "Tendulkar";
    
         $result = $txt1 . " " . $txt2;
         echo $result . "\n";
     ?>
    

    输出: Sachin Tendulkar

  3. 使用 printf 函数连接字符串。

    代码片段:

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

    输出:

     SachinTendulkar
     Sachin Tendulkar
    

评论

5赞 John Conde 8/27/2017
这个答案提供了其他答案尚未提供的什么?
-3赞 Kankatala Krishna 8/2/2019 #15

试试这个。我们可以在 PHP 中附加一个带有点 (.) 符号的字符串

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

echo $data1 . $data2; // The color isred
echo $data1 . " " . $data2; // The color is red (we have appended space)

评论

4赞 John Conde 8/25/2019
这个答案没有提供其他答案没有提供的任何内容。
-1赞 Rafi Ullah Patel 8/5/2019 #16

在 PHP 中将两个字符串组合在一起:

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

评论

3赞 John Conde 8/24/2019
这个答案没有提供其他答案没有提供的任何内容,也没有解释为什么或如何工作。
0赞 Saroar Hossain Limon 6/26/2022 #17

这里已经提到的最简单的方法:

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

在某些情况下,您可能需要使用 join() 或 implode() 等函数。这两个函数都做同样的事情,即将数组项转换为字符串。

示例 1:

$result = join(' ', [$data1, $data2]);

示例 2:

$result = implode(' ', [$data1, $data2]);
0赞 Saeid 8/14/2022 #18
$result = $data1 . ' ' . $data2;

最好的方法。

$result = "$data1 $data2";

$result = "{$data1} {$data2};
0赞 Vijay Kanaujia 9/28/2022 #19

你可以让你的 on 数组的值为空而不是空;并使用 filter 和 implode 来制作完整的句子

$str1 = 'hello';
$str2 = 'my name';
$str3 = 'vijay';
$str4 = '';
$fullsentence = array_filter([$str1, $str2, $str3, $str4]);
echo implode(' ', $fullsentence);