PHPで2つの文字列を組み合わせる方法は?


140

私は実際に私が何を望んだかを説明する方法がわかりませんが、あなたに見せます:

例えば:

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

$ resultはとの組み合わせですので、私は何をする(または処理する)必要が$data1あり$data2ますか?

望ましい結果:

$result = "the color is red";

13
これは「文字列連結」と呼ばれ+、数値以外の外部のものであってはなりません。本/チュートリアルから始めて、言語の基本的な演算子に慣れてください。

1
それを行う方法はたくさんあります。答えを見つけたら、チェックしてみてください。ただし、最も単純なものを使用してください。たとえば、$ result = "$ data1 $ data2"; それでおしまい。または$ result = $ data1。$ data2;
jewelhuq 2016年

1
@Machavityは、魔法のように保護レベルを上げて、冗長な投稿がこのページに蓄積されないようにすることができますか?
mickmackusa

回答:


206
$result = $data1 . $data2;

これは文字列連結と呼ばれます。ただし、この例ではスペースが不足しているため、具体的には次のものが必要です。

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

85

2つの文字列を連結する方法はいくつかあります。

連結演算子を使用する.(および.=

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;

ヘレドック

ヒアドキュメントは、変数を文字列に結合するためにも使用できます。

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

を使っ,echo()

これは、コンテンツをエコーし​​て変数に割り当てない場合にのみ機能します。ただし、コンマを使用して式のリストを区切ってPHPがエコーし、1つの空白スペースを含む文字列をそれらの式の1つとして使用できます。

echo $data1, ' ', $data2;

21

誰もこれについて言及していませんが、他の可能性があります。私はそれを巨大なSQLクエリに使用しています。。=演算子を使用できます:)

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

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

「私はそれを巨大なSQLクエリに使用しています。」-これはen.wikipedia.org/wiki/SQL_injection
活動を減らす

この方法または他の方法で文字列を正確に連結すると、パラメーター化されたクエリでSQLインジェクションがどのように得られますか?
codelame

SQLクエリ全体を手動で構築すること(少なくとも「巨大なsqlクエリの場合」で推奨)は問題です。クエリ全体ではなく、パラメータのみを準備することは、この特定のセキュリティリスクから安全でなければなりません。
活動の削減

19

それらを.演算子で連結します:

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

または、文字列補間を使用します。

$result = "$data1 $data2";

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

より一般的です。


1
VARSは、任意の値を持っている場合、これはあなたがそれチェックなど区切りのリストを作成したい場合に非常に有用である$email_to = implode(', ', array($addr1, $addr2, addr3));ための必要はありませんif($addr != '')など
アバ

4
必要でない限り、配列関数を選択しないでください。配列関数は常に演算子よりも遅いためです。さらに; 彼らはより多くのラムを使用します。
MERTDOĞAN16年

9

利用可能な別のフォームはこれです:

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

6

次のコード行を試すことができます

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

二重引用符の代わりに単一引用符を使用したい。リンク
Jack

5

ピリオドは、文字列を連結するために使用されます。2つの文字列変数を1つの変数に変換する簡単な例:

$full = $part1 . $part2;

あなたの例では、あなたがしたいでしょう:

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

2つの変数の間に1つのスペースの文字列を追加したことがわかります。これは、オリジナル$data1がスペースで終わっていなかったためです。それなしで組み合わせた場合、$result変数はのようになりthe color isredます。


5

これを行うには、PHPを使用します。

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

これは2つの文字列を結合し、putputは「色は赤です!」になります。


1
作成された入力値はOPの入力文字列を表しておらず、YEARSで前に述べられたソリューションをエコーし​​ています。これはJavaScriptの質問ではないため、アドバイスは関係ありません。この投稿はページに値を追加しません。
mickmackusa

@ mickmackusa、OKテキストを更新しました。正解ですが、これは非常に基本的な質問なので、jsの回答をここに示しました。ユーザーは違いを学ぶことができます
sunil

1
更新はOPのテキストを使用していません。PHPの質問にJavaScriptソリューションを提供しないでください。この回答の形式は適切ではなく、ページに価値がありません。
mickmackusa

4
$s = "my name is ";

$s .= "keyur";

echo $s; 

結果:

my name is keyur

9
StackOverflowへようこそ。質問に答えればいいです。ただし、その場合は適切にフォーマットしてください。さらに、あなたの答えはすでに与えられました。この4歳の投稿にどのように付加価値を加えますか?
T3 H40 2016年

6
これは既存の回答の繰り返しです。
2016

4
$result = $data1 . $data2;

これを試して


5
これは正解ではありません。「色は赤」になります。また、あなたの回答は、何年も前に投稿された誰かの回答と重複しています。反対票。
Jason Liu


0

私はあなたの要件が何であるか正確にはわかりませんが、基本的には2つの変数を別々に定義し、その後それらを組み合わせることができます。

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

$result=$data1.$data2;

そうすることで、$ data2をグローバルレベルとして宣言することもでき、実行中にその値を変更できます。たとえば、チェックボックスから「赤」という回答を取得できます。


0

PHPで2つの文字列を結合しますか?

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

2
この回答は、他の回答がまだ提供していないものは何も提供しておらず、これがなぜまたはどのように機能するかについての説明も提供していません。
John Conde

-1

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

  1. printf関数を使用して文字列を連結します。

コードスニペット :

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

出力:
SachinTendulkar
Sachin Tendulkar


4
他の回答でまだ提供されていないこの回答の提供は何ですか?
John Conde

@rashedcs私にとっては素晴らしい作品です!! 🏏
IPSDSILVA

-1

最もパフォーマンスの高い方法は次のとおりです。

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

ローカリゼーションを実装したい場合は、次のようなことを行うことができます。

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

少し遅いですが、文法規則は想定されていません。


-3

これを試してください。ドット(。)記号を使ってPHPに文字列を追加できます。

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

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

1
この回答は、他の回答がまだ提供していないものは何も提供しません。
John Conde
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.