문자열의 시작 부분에 텍스트를 추가하기 위해. =와 같은 것이 있는지 궁금합니다. 예 :
$foo =. 'bar';
작동하지 않습니다.
편집 : 예는 원래되었다 $foo =. $bar;
달성 할 수있는$bar .= $foo;
$foo
에게 $bar
, 대신에 붙이는의 $bar
에 $foo
. 결과는 비슷하지만 $foo
.
문자열의 시작 부분에 텍스트를 추가하기 위해. =와 같은 것이 있는지 궁금합니다. 예 :
$foo =. 'bar';
작동하지 않습니다.
편집 : 예는 원래되었다 $foo =. $bar;
달성 할 수있는$bar .= $foo;
$foo
에게 $bar
, 대신에 붙이는의 $bar
에 $foo
. 결과는 비슷하지만 $foo
.
답변:
항상 자신의 기능을 만들 수 있습니다.
function prepend($string, $chunk) {
if(!empty($chunk) && isset($chunk)) {
return $string.$chunk;
}
else {
return $string;
}
}
$string
앞에 추가하고 싶은 부분이 될 것입니다. $chunk
될 것이고 그 위에 무언가를 추가하려는 텍스트가 될 것입니다.
검사가 선택 사항이라고 말할 수 있지만 거기에 있으면 실수로 null 값을 전달하는 것에 대해 걱정할 필요가 없습니다.
!empty
항상 있다면 isset
이 이중 확인이 필요하지 않습니다. 이후 또한, $chunk
함수의 필수 파라미터이고, 그것은 필요 함수에 전달되도록하거나 PHP 불평한다. 즉,이 검사는 약어로 표시 될 수 있습니다 if ($chunk)
( 거짓 일명 "비어 있음"인지 확인하기 위해). 그러나 $chunk
아무것도 포함하지 않으면 아무 일도 일어나지 않습니다. 따라서이 전체 기능 본문은 return $string . $chunk
. 즉,이 모든 기능이 매우 불필요합니다.
$foo . $bar
. 나는 당신의 기능이 다른 일을하는 중요한 경우를 찾도록 도전합니다. :)
나는 이것이 얼마 전에 질문 / 답변을 받았음을 알고 있지만 할당 연산자가 아니고 일반 문자열 연결에 대한 사용법에 대해 아무도 언급하지 않았음에도 불구하고 기능적으로 동일 하므로이 대답을 제공합니다.
문자열 연결을 위해 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" */
sprintf
일반적으로 여러 언어에서 사용됩니다. sprintf
사용시기에 대한 위치와 목적이 있습니다. 예. 여러 값을 캐스팅하거나를 사용하여 여러 입력을 적용하면 필요할sprintf
때 단순한 연결보다 더 많은 기능을 제공 합니다 . 참조 : 3v4l.org/8PWil 그러나 연결을위한 완전한 대체물로 사용해서는 안됩니다.
내장 함수를 래핑 할 수 있습니다 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;
절차 적 프로그래밍에 관심이 있다면 그렇습니다.
$string = $prefix.$string;
함수에서 간단한 작업을 수행하면 트릭을 수행 할 수 있습니다.
선반 Blakethepatton의 의견을 답변 (감사합니다)에, 방법은 더 이상 변수 이름을 더 깔끔하게 이렇게하는 것은 사용하는 것입니다 참조 다음과 같이 변수를 :
$f = &$foo; $f = "bar{$f}";
이것은 Eric V 의 대답 을 입력하는 것을 저장합니다. 원래 변수 이름이 12 자 이상인 경우 .
한 줄의 대안 :
$f = 'bar' . ($f = &$foo);