[php] PHP에서 문자열의 시작 부분에 추가하기 위해. =에 해당하는 것이 있습니까?

문자열의 시작 부분에 텍스트를 추가하기 위해. =와 같은 것이 있는지 궁금합니다. 예 :

$foo =. 'bar';

작동하지 않습니다.

편집 : 예는 원래되었다 $foo =. $bar;달성 할 수있는$bar .= $foo;



답변

아니. 하지만 당신은 할 수 있습니다

$foo = "bar" . $foo


답변

항상 자신의 기능을 만들 수 있습니다.

function prepend($string, $chunk) {
     if(!empty($chunk) && isset($chunk)) {
        return $string.$chunk;
     }
     else {
        return $string;
     }
}

$string 앞에 추가하고 싶은 부분이 될 것입니다. $chunk 될 것이고 그 위에 무언가를 추가하려는 텍스트가 될 것입니다.

검사가 선택 사항이라고 말할 수 있지만 거기에 있으면 실수로 null 값을 전달하는 것에 대해 걱정할 필요가 없습니다.


답변

나는 이것이 얼마 전에 질문 / 답변을 받았음을 알고 있지만 할당 연산자가 아니고 일반 문자열 연결에 대한 사용법에 대해 아무도 언급하지 않았음에도 불구하고 기능적으로 동일 하므로이 대답을 제공합니다.

문자열 연결을 위해 sprintf( documentation ) 함수 계열의 사용을 조사 할 수 있습니다 . 두 문자열을 할당 연산자와 결합하는 것보다 훨씬 더 많은 위생과 유용성을 제공합니다.

$foo = 'foo';

$append = sprintf('%1$s%2$s', $foo, 'bar');
var_dump($append);
/* string(6) "foobar" */

$prepend = sprintf('%1$s%2$s', 'bar', $foo);
var_dump($prepend);
/* string(6) "barfoo" */

$prependInvert = sprintf('%2$s%1$s', $foo, 'bar');
var_dump($prependInvert);
/* string(6) "barfoo" */

$wrap = sprintf('%2$s%1$s%2$s', $foo, 'bar');
var_dump($wrap);
/* string(6) "barfoobar" */

vsprintf배열 작업이 개별 인수보다 값 위치를 관리하기 쉽기 때문에 일반적으로를 사용 합니다.

$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */

또한 값 배열을 사용하여 implode간단한 문자열 연결에 대한 결과 값 집합을 간단히 만들 수 있습니다 .

 var_dump(implode('', array('bar', 'foo')));
 /* string(6) "barfoo" */


답변

내장 함수를 래핑 할 수 있습니다 substr_replace. 여기서 $ start 및 $ length 인수를 0으로 설정하면 $ replacement를 $ string 앞에 추가하고 결과를 반환합니다.

function prepend(& $string, $prefix) {
    $string = substr_replace($string, $prefix, 0, 0);
}

도우미 함수의 사용 예는 다음과 같습니다.

$email_message = "Jonathan";
$appropriate_greeting = "Dear ";
prepend($email_message, $appropriate_greeting);
echo $email_message;

절차 적 프로그래밍에 관심이 있다면 그렇습니다.


답변

선반 Blakethepatton의 의견을 답변 (감사합니다)에, 방법은 더 이상 변수 이름을 더 깔끔하게 이렇게하는 것은 사용하는 것입니다 참조 다음과 같이 변수를 :

$f = &$foo; $f = "bar{$f}";

이것은 Eric V대답 을 입력하는 것을 저장합니다. 원래 변수 이름이 12 자 이상인 경우 .

한 줄의 대안 :

$f = 'bar' . ($f = &$foo);


답변