Bagaimana cara menggabungkan dua string bersama dalam PHP?

140

Saya sebenarnya tidak tahu bagaimana menggambarkan apa yang saya inginkan tetapi saya akan menunjukkan kepada Anda:

Sebagai contoh:

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

Apa yang harus saya lakukan (atau proses) sehingga $ result adalah kombinasi dari $data1dan $data2?

Hasil yang diinginkan:

$result = "the color is red";
Glennanyway
sumber
13
Ini disebut "string concatenation" dan seharusnya tidak lebih asing dari +pada angka. Silakan mulai dengan buku / tutorial dan biasakan diri Anda dengan operator dasar dalam bahasa ini.
1
Ada banyak cara untuk melakukannya. jika Anda melihat jawabannya, Anda dapat memeriksanya. tetapi gunakan yang paling sederhana. misalnya $ result = "$ data1 $ data2"; itu dia. atau $ result = $ data1. $ data2;
jewelhuq
1
@Machavity dapatkah Anda secara ajaib meningkatkan tingkat perlindungan sehingga posting yang berlebihan tidak terus menumpuk di halaman ini?
mickmackusa

Jawaban:

206
$result = $data1 . $data2;

Ini disebut penggabungan string. Contoh Anda tidak memiliki ruang, jadi untuk itu secara spesifik, Anda perlu:

$result = $data1 . ' ' . $data2;
Logan Serman
sumber
85

Ada beberapa cara untuk menggabungkan dua string bersama.

Gunakan operator gabungan .(dan .=)

Dalam PHP .adalah operator gabungan yang mengembalikan rangkaian argumen kanan dan kiri

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

Jika Anda ingin menambahkan string ke string lain, Anda akan menggunakan .=operator:

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

String sintaksis (keriting) / tanda kutip ganda

Dalam variabel PHP yang terkandung dalam string dikutip ganda diinterpolasi (yaitu nilai-nilai mereka "swap" untuk variabel). Ini berarti Anda dapat menempatkan variabel di tempat string dan hanya menempatkan spasi di antara mereka. Kurung kurawal memperjelas di mana variabelnya.

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

Catatan: ini juga akan berfungsi tanpa kawat gigi dalam case Anda:

$result = "$data1 $data2";

Anda juga dapat menggabungkan nilai array di dalam string:

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

Gunakan sprintf()atauprintf()

sprintf()memungkinkan kita untuk memformat string menggunakan opsi pemformatan yang kuat. Ini terlalu banyak untuk rangkaian sederhana seperti itu tetapi berguna ketika Anda memiliki string yang kompleks dan / atau ingin melakukan beberapa format data juga.

$result = sprintf("%s %s", $data1, $data2);

printf() melakukan hal yang sama tetapi akan segera menampilkan hasilnya.

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;

Heredoc

Heredocs juga dapat digunakan untuk menggabungkan variabel menjadi string.

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

Gunakan ,denganecho()

Ini hanya berfungsi ketika menggemakan konten dan tidak menetapkan ke variabel. Tetapi Anda dapat menggunakan koma untuk memisahkan daftar ekspresi untuk PHP untuk menggemakan dan menggunakan string dengan satu ruang kosong sebagai salah satu dari ekspresi itu:

echo $data1, ' ', $data2;
John Conde
sumber
21

Tidak ada yang menyebutkan ini tetapi ada kemungkinan lain. Saya menggunakannya untuk kueri sql besar. Anda dapat menggunakan. = Operator :)

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

echo $string; // gives: the color is red
nama kode
sumber
"Saya menggunakannya untuk permintaan sql yang sangat besar." - perhatikan bahwa ini adalah cara khas untuk mendapatkan en.wikipedia.org/wiki/SQL_injection
mengurangi aktivitas
bagaimana tepatnya penggabungan string ini atau cara lain akan memberi saya injeksi sql dalam kueri parameterisasi saya?
codelame
Secara manual membangun seluruh kueri SQL (setidaknya disarankan oleh "untuk kueri sql besar") tidak OK. Mempersiapkan parameter yang adil, tidak seluruh permintaan harus aman dari risiko keamanan khusus ini.
mengurangi aktivitas
19

Gabungkan mereka dengan .operator:

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

Atau gunakan interpolasi string:

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

lebih generik.

Mengapa 50 poin berkomentar ...
sumber
1
ini sangat berguna dalam kasus di mana Anda ingin membuat daftar terbatas karena memeriksa apakah vars memiliki nilai $email_to = implode(', ', array($addr1, $addr2, addr3));tidak perlu if($addr != '')dll
Aba
4
Jangan memilih fungsi array, kecuali Anda harus. Karena fungsi array lebih lambat daripada operator. Selain itu; mereka menggunakan lebih banyak ram.
MERT DOĞAN
9

Bentuk lain yang tersedia adalah ini:

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

Anda dapat mencoba baris kode berikut

$result = $data1." ".$data2;
pengguna710502
sumber
Saya lebih suka menggunakan tanda kutip tunggal daripada tanda kutip ganda. tautan
Jack
5

Periode digunakan untuk menggabungkan string. Contoh sederhana untuk mengubah dua variabel string menjadi variabel tunggal:

$full = $part1 . $part2;

Dalam contoh Anda, Anda ingin melakukan:

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

Anda akan melihat saya menambahkan string satu spasi antara dua variabel. Ini karena dokumen asli Anda $data1tidak berakhir dengan spasi. Jika Anda menggabungkan mereka tanpa itu, $resultvariabel Anda akan berakhir seperti the color isred.

Aken Roberts
sumber
5

Anda dapat melakukan ini menggunakan PHP:

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

Ini akan menggabungkan dua string dan putput akan menjadi: "warnanya merah!".

sunil
sumber
1
Nilai input pabrikan Anda tidak mewakili string input OP dan Anda menggemakan solusi yang telah dinyatakan TAHUN sebelumnya. Ini bukan pertanyaan javascript sehingga saran itu tidak relevan. Posting ini tidak menambah nilai ke halaman.
mickmackusa
@mickmackusa, ok saya perbarui teks, Anda benar tetapi saya memberikan jawaban js di sini karena ini adalah pertanyaan yang sangat mendasar sehingga pengguna dapat mempelajari perbedaannya
sunil
1
Pembaruan Anda TIDAK menggunakan teks OP. Jangan berikan solusi javascript untuk pertanyaan php. Jawaban ini diformat dengan buruk dan tidak menambah nilai pada halaman.
mickmackusa
4
$s = "my name is ";

$s .= "keyur";

echo $s; 

hasil:

my name is keyur
keyur sojitra
sumber
9
Selamat datang di StackOverflow. Itu bagus, jika Anda menjawab pertanyaan. Namun, jika Anda melakukannya, harap format dengan benar. Selanjutnya, jawaban Anda sudah diberikan. Bagaimana cara menambahkan nilai tambahan ke pos berusia empat tahun ini ?
T3 H40
6
Ini hanyalah pengulangan dari jawaban yang ada.
Pang
4
$result = $data1 . $data2;

coba ini

Farhan
sumber
5
Ini bukan jawaban yang benar. itu menghasilkan "warna merah". Juga, jawaban Anda digandakan dari jawaban seseorang yang diposting bertahun-tahun yang lalu. Turunkan suara.
Jason Liu
3

Ini seharusnya bekerja untuk Anda:

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

Referensi: Variabel String PHP

Robert
sumber
0

Saya tidak begitu jelas dengan apa persyaratan Anda tetapi pada dasarnya Anda dapat secara terpisah mendefinisikan dua variabel dan kemudian menggabungkannya bersama-sama.

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

$result=$data1.$data2;

Dengan melakukannya, Anda bahkan dapat mendeklarasikan $ data2 sebagai tingkat global sehingga Anda dapat mengubah nilainya selama eksekusi, misalnya ia dapat memperoleh jawaban "merah" dari kotak centang.

Yoosuf
sumber
0

menggabungkan dua string bersama di PHP?

$result = $data1 . ' ' . $data2;
Rafi Ullah Patel
sumber
2
Jawaban ini tidak menawarkan apa pun jawaban lain belum disediakan dan tidak memberikan penjelasan mengapa atau bagaimana ini bekerja.
John Conde
-1

1.Concatenate the string (spasi antara setiap string)

Cuplikan Kode:

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

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

Output: SachinTendulkar

2.Concatenate string di mana ada ruang

Cuplikan Kode:

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

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

Output: Sachin Tendulkar

  1. Menggabungkan string menggunakan fungsi printf.

Cuplikan Kode:

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

Output:
SachinTendulkar
Sachin Tendulkar

ruam
sumber
4
Apa yang ditawarkan jawaban ini yang belum disediakan oleh jawaban lain?
John Conde
@rashedcs Bekerja sangat baik untuk saya !! 🏏
IPSDSILVA
-1

Saya percaya cara yang paling performan adalah:

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

Jika Anda ingin menerapkan pelokalan, Anda dapat melakukan sesuatu seperti ini:

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

Ini sedikit lebih lambat, tetapi tidak menganggap aturan tata bahasa.

Pedro Amaral Couto
sumber
-3

Coba ini, kita dapat menambahkan string dalam php dengan simbol dot (.)

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

echo $data1.$data2; //the color isred
echo $data1." ".$data2; // the color is red (we have appended space)
Kankatala Krishna
sumber
1
Jawaban ini tidak menawarkan apa pun yang belum diberikan oleh jawaban lain.
John Conde