Любой эквивалент. = Для добавления в начало строки в PHP?

Просто интересно, есть ли что-то вроде: = для добавления текста в начало строки, например:

$foo =. 'bar';

который не работает.

Изменить: пример изначально был $foo =. $bar;, который может быть достигнут с помощью $bar .= $foo;

Ответ 1

Неа. Но вы можете сделать

$foo = "bar" . $foo

Ответ 2

Вы всегда можете сделать свою собственную функцию для этого:

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

$string будет частью, которую вы хотите добавить, и $chunk будет текстом, который вы хотите добавить на него.

Вы можете сказать, что проверки не являются обязательными, но, если вам это нужно, вам не нужно беспокоиться о том, чтобы случайно передать нулевое значение.

Ответ 3

Я знаю, что это было спрошено/ответили некоторое время назад, но предоставил этот ответ, поскольку он функционально эквивалентен, несмотря на то, что он не является оператором присваивания, и никто не комментировал его использование для общей конкатенации строк.

Возможно, вам захочется ознакомиться с 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" */

Ответ 4

Вы можете обернуть встроенную функцию 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;

Если вы занимаетесь процедурным программированием, то есть.

Ответ 5

 $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