문자열의 시작 부분에 텍스트를 추가하기 위해. =와 같은 것이 있는지 궁금합니다. 예 :
$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);