PHP에서 두 문자열을 결합하는 방법은 무엇입니까?


140

실제로 내가 원하는 것을 설명하는 방법을 모르겠지만 보여 드리겠습니다.

예를 들면 다음과 같습니다.

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

나는 $ 결과의 조합 그래서 (또는 프로세스) 무엇을해야 $data1하고 $data2?

원하는 결과 :

$result = "the color is red";

13
이것을 "문자열 연결"이라고 +하며 숫자 보다 더 이질적인 것은 아닙니다 . 책 / 자습서부터 시작하여 언어의 기본 연산자에 익숙해 지십시오.

1
그것을 할 수있는 많은 방법이 있습니다. 당신이 대답을 볼 경우 당신은 그것을 확인할 수 있습니다. 그러나 가장 간단한 것을 사용하십시오. 예를 들어 $ result = "$ data1 $ data2"; 그게 다야. 또는 $ result = $ data1. $ data2;
— jewelhuq

1
@Machavity 중복 게시물이이 페이지에 계속 쌓이지 않도록 보호 수준을 마술처럼 높일 수 있습니까?
— mickmackusa

답변:


206
$result = $data1 . $data2;

이것을 문자열 연결이라고합니다. 그러나 예제에는 공간이 부족하므로 구체적으로 다음이 필요합니다.

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

85

두 개의 문자열을 연결하는 방법에는 여러 가지가 있습니다.

연결 연산자 .(및 .=)를 사용하십시오.

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;

Heredoc

Heredocs 를 사용하여 변수를 문자열로 결합 할 수도 있습니다.

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

사용 ,와 함께echo()

이것은 내용을 반향하고 변수에 할당하지 않을 때만 작동합니다. 그러나 쉼표를 사용하여 PHP에 대한 표현식 목록을 분리하여 하나의 공백이있는 문자열을 해당 표현식 중 하나로 사용할 수 있습니다.

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
바르 어떤 값이있는 경우이 당신이 그것을 검사로 구분 된 목록을하고자하는 경우에 매우 유용 $email_to = implode(', ', array($addr1, $addr2, addr3));에 대한 필요성 if($addr != '')등
— 아바

4
꼭 필요한 경우가 아니면 배열 함수를 선택하지 마십시오. 배열 기능은 연산자보다 항상 느리기 때문입니다. 또한; 그들은 더 많은 램을 사용합니다.
— MERT DOĞAN

9

사용 가능한 다른 형태는 다음과 같습니다.

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

6

다음 코드 줄을 시도해 볼 수 있습니다

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

큰 따옴표 대신 작은 따옴표를 사용하고 싶습니다. 링크
— Jack

5

마침표는 문자열을 연결하는 데 사용됩니다. 두 개의 문자열 변수를 단일 변수로 바꾸는 간단한 예 :

$full = $part1 . $part2;

귀하의 예에서 다음을 수행하려고합니다.

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

두 변수 사이에 하나의 공백 문자열을 추가 한 것을 알 수 있습니다. 원본 $data1이 공백으로 끝나지 않았기 때문 입니다. 그것없이 그것들을 결합했다면 $result변수는 다음과 같이 보일 것 the color isred입니다.


5

PHP를 사용하여이 작업을 수행 할 수 있습니다.

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

이것은 두 개의 줄을 결합하고 입력은 "색이 빨간색입니다!"입니다.


1
조작 된 입력 값은 OP의 입력 문자열을 나타내지 않으며 몇 년 전에 언급 한 에코 솔루션입니다. 이것은 자바 스크립트 질문이 아니므로 조언은 관련이 없습니다. 이 게시물은 페이지에 값을 추가하지 않습니다.
— mickmackusa

@mickmackusa, 확인 I 업데이트 텍스트, 당신은 잘하지만 나는 사용자가 차이를 배울 수 있도록이 매우 기본적인 질문이기 때문에 JS 여기에 대답했다
— 선일

1
업데이트에서 OP의 텍스트를 사용하고 있지 않습니다. PHP 질문에 자바 스크립트 솔루션을 제공하지 마십시오. 이 답변의 형식이 잘못되어 페이지에 값을 추가하지 않습니다.
— mickmackusa

4
$s = "my name is ";

$s .= "keyur";

echo $s; 

결과:

my name is keyur

9
StackOverflow에 오신 것을 환영합니다. 질문에 대답하면 좋습니다. 그러나 그렇게하면 적절하게 포맷하십시오. 또한, 당신의 대답은 이미 주어졌습니다. 이 4 살짜리 게시물 에 부가 가치를 어떻게 추가 합니까?
— T3 H40

6
이것은 기존 답변의 반복입니다.
— Pang

4
$result = $data1 . $data2;

이 시도


5
이것은 정답이 아닙니다. 결과적으로 "색이 옅어집니다". 또한 귀하의 답변은 몇 년 전에 게시 된 다른 사람의 답변과 중복됩니다. 다운 투표.
— Jason Liu


0

나는 당신의 요구 사항이 무엇인지 명확하지 않지만 기본적으로 두 변수를 별도로 정의한 다음 함께 결합 할 수 있습니다.

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

$result=$data1.$data2;

이렇게하면 $ data2를 전역 수준으로 선언하여 실행 중에 값을 변경할 수 있습니다. 예를 들어 확인란에서 "빨간색"이라는 대답을 얻을 수 있습니다.


0

PHP에서 두 개의 문자열을 결합합니까?

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

2
이 답변은 다른 답변은 아직 제공하지 않았으며 이것이 왜 또는 어떻게 작동하는지에 대한 설명을 제공하지 않습니다.
— John Conde

-1

1. 문자열 연결 (각 문자열 사이의 공백)

코드 스 니펫 :

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

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

출력 : SachinTendulkar

공간이 존재하는 문자열을 연결

코드 스 니펫 :

<?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
이 답변은 다른 답변은 아직 제공하지 않았습니다.
— 존 콘데
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.