首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中添加到字符串开头的.=有没有等价物?

在PHP中添加到字符串开头的.=有没有等价物?
EN

Stack Overflow用户
提问于 2011-08-19 01:50:00
回答 4查看 66.5K关注 0票数 108

我只是想知道是否有像.=这样的东西可以将文本添加到字符串的开头,例如:

$foo =. 'bar';

这不管用。

编辑:示例最初是$foo =. $bar;,可以用$bar .= $foo;实现

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-19 01:52:13

不是的。但你能做到

$foo = "bar" . $foo
票数 182
EN

Stack Overflow用户

发布于 2011-08-19 02:03:32

您可以随时为此创建自己的函数:

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

$string将是您想要预先添加的部分,而$chunk将是您希望在其上添加内容的文本。

你可以说检查是可选的,但是有了它,你就不需要担心意外地传入空值了。

票数 4
EN

Stack Overflow用户

发布于 2015-02-25 23:07:10

我知道之前有人问过/回答过这个问题,但提供这个答案是因为它在功能上是等价的,尽管它不是赋值运算符,也没有人评论它用于常规字符串连接的用法。

您可能希望研究一下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" */
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7111816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档