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

gle*_*way 127 php string variables combinations

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

例如:

$data1 = "the color is";
$data2 = "red";
Run Code Online (Sandbox Code Playgroud)

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

期望的结果:

$result = "the color is red";
Run Code Online (Sandbox Code Playgroud)

Log*_*man 192

$result = $data1 . $data2;
Run Code Online (Sandbox Code Playgroud)

这称为字符串连接.你的例子虽然缺乏空间,所以具体来说,你需要:

$result = $data1 . ' ' . $data2;
Run Code Online (Sandbox Code Playgroud)


Joh*_*nde 76

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

使用连接运算符.(和.=)

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

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;
Run Code Online (Sandbox Code Playgroud)

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

$data1 = "the color is ";
$data1 .= "red"
Run Code Online (Sandbox Code Playgroud)

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

在PHP中,双引号字符串中包含的变量是内插的(即它们的值被"换出"变量).这意味着您可以将变量放在字符串的位置,只需在它们之间放置一个空格即可.花括号可以清楚地表明变量的位置.

$result = "{$data1} {$data2}";
Run Code Online (Sandbox Code Playgroud)

注意:在没有大括号的情况下,这也可以使用:

$result = "$data1 $data2";
Run Code Online (Sandbox Code Playgroud)

使用sprintf()printf()

sprintf()允许我们使用强大的格式选项格式化字符串.对于这种简单的连接来说是过度的,但是当你有一个复杂的字符串和/或想要对数据进行一些格式化时它很方便.

$result = sprintf("%s %s", $data1, $data2);
Run Code Online (Sandbox Code Playgroud)

printf() 做同样的事情,但会立即显示输出.

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;
Run Code Online (Sandbox Code Playgroud)

定界符

Heredocs也可用于将变量组合成字符串.

$result= <<<EOT
$data1 $data2
EOT;
Run Code Online (Sandbox Code Playgroud)

使用,echo()

这仅在回显内容而不分配给变量时有效.但是您可以使用逗号分隔PHP表达式列表以回显并使用带有一个空格的字符串作为其中一个表达式:

echo $data1, ' ', $data2;
Run Code Online (Sandbox Code Playgroud)


Jer*_*ten 18

将它们与.运算符连接:

$result = $data1 . " " . $data2;
Run Code Online (Sandbox Code Playgroud)

或者使用字符串插值:

$result = "$data1 $data2";
Run Code Online (Sandbox Code Playgroud)


cod*_*ame 18

没有人提到这一点,但还有其他可能性.我正在使用它进行大量的SQL查询.你可以使用.= operator :)

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

echo $string; // gives: the color is red
Run Code Online (Sandbox Code Playgroud)

  • “我用它来进行大量的 SQL 查询。” - 请注意,这是获取 https://en.wikipedia.org/wiki/SQL_injection 的典型方式 (2认同)
  • 手动构建整个 SQL 查询(至少“对于巨大的 sql 查询”建议)是不行的。仅准备参数,而不是整个查询应该可以避免这种特定的安全风险。 (2认同)

Why*_*... 10

$result = implode(' ', array($data1, $data2));
Run Code Online (Sandbox Code Playgroud)

更通用.

  • 除非必须,否则不要选择数组函数.因为数组函数总是比运算符慢.另外; 他们使用更多的公羊. (3认同)
  • 当您想要创建分隔列表时,这非常有用,因为它会检查变量是否具有任何值 `$email_to = implode(', ', array($addr1, $addr2, addr3));` 不需要`if($addr != '')` 等 (2认同)

Tim*_*m G 8

另一种形式是:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";
Run Code Online (Sandbox Code Playgroud)


use*_*502 6

您可以尝试以下代码行

$result = $data1." ".$data2;
Run Code Online (Sandbox Code Playgroud)


Ake*_*rts 5

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

$full = $part1 . $part2;
Run Code Online (Sandbox Code Playgroud)

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

$result = $data1 . ' ' . $data2;
Run Code Online (Sandbox Code Playgroud)

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


sun*_*nil 5

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

$txt1 = "the color is";
$txt2 = " red!";
echo $txt1.$txt2;
Run Code Online (Sandbox Code Playgroud)

这将组合两个字符串,putput将是:"颜色是红色!".