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";

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;

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;

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

"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";

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

lebih generik.


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}";

6

Anda dapat mencoba baris kode berikut

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

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.


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!".


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

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


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


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.


0

menggabungkan dua string bersama di PHP?

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

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


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.


-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)

1
Jawaban ini tidak menawarkan apa pun yang belum diberikan oleh jawaban lain.
John Conde
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.