任何等同于。=添加到PHP的string的开头?
只是想知道是否有类似的。=添加文本到string的开始,例如:
$foo =. 'bar';
这不起作用。
编辑:例子最初是$foo =. $bar;
$foo =. $bar;
这可以通过$bar .= $foo;
来实现$bar .= $foo;
不。 但是你可以做
$foo = "bar" . $foo
你总是可以为自己的function:
function prepend($string, $chunk) { if(!empty($chunk) && isset($chunk)) { return $string.$chunk; } else { return $string; } }
$string
将是你想要prepend的$chunk
, $chunk
将是你想要的东西前缀的文本。
你可以说支票是可选的,但是通过在那里你不需要担心偶然传入一个空值。
我知道这是前一个问题/答案,但提供这个答案,因为它是function上等效的,尽pipe它不是一个赋值运算符,没有人评论其用于一般string连接。
您可能需要查看sprintf
( documentation )函数族在string连接中的用法。 它提供了更多的消毒和可用性,而不仅仅是将两个string与赋值运算符结合起来。
$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
,因为使用数组比处理单个参数更容易pipe理值的位置。
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar')); var_dump($vprepend); /* string(6) "barfoo" */
还有一个值的数组,可以简单地为简单的string串联内插值的结果集。
var_dump(implode('', array('bar', 'foo'))); /* string(6) "barfoo" */
你可以包装内置函数substr_replace
,其中参数$ start和$ length可以被设置为0,它将$ replacementreplace为$ 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