Просто интересно, есть ли что-то вроде: = для добавления текста в начало строки, например:
$foo =. 'bar';
который не работает.
Изменить: пример изначально был $foo =. $bar;
, который может быть достигнут с помощью $bar .= $foo;
Просто интересно, есть ли что-то вроде: = для добавления текста в начало строки, например:
$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
будет текстом, который вы хотите добавить на него.
Вы можете сказать, что проверки не являются обязательными, но, если вам это нужно, вам не нужно беспокоиться о том, чтобы случайно передать нулевое значение.
Я знаю, что это было спрошено/ответили некоторое время назад, но предоставил этот ответ, поскольку он функционально эквивалентен, несмотря на то, что он не является оператором присваивания, и никто не комментировал его использование для общей конкатенации строк.
Возможно, вам захочется ознакомиться с 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, что добавляет $замену в строку $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;
Если вы занимаетесь процедурным программированием, то есть.
$foo = "Some Foo Text";
$bar = "Some Bar Text";
echo $foo.$bar // Some Foo TextSome Bar Text
echo $bar.$foo // Some Bar TextSome Foo Text
$foobar = $foo.$bar
$boofar = $bar.$foo