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.