PHP增加字符串值

时间:2014-01-26 13:05:09

标签: php

我遇到了一些增加字符串值的问题,例如:

$string = "someString_1";

我需要价值somestring_2。当然,我可以使用像this这样的东西。 但是我试图找到另一种方式,结果我发现在我的情况下它将会成为$ string ++;

$string++;
echo $string; //someString_2

很棒,我只有一串代码。但: Queston,is this correct way, or is there more better variants?(条件是我的字符串总是在结尾处有整数)

为什么它在第一个位置的整数时不起作用。例如,如果我们做:

echo '1string' + '2string'; //结果3.当我们想要进行一些数学运算时,这就是PHP使用字符串的方式

3 个答案:

答案 0 :(得分:2)

你可以试试这个正则表达式。此代码段有效,它以someString_2

的形式提供了结果
 $string = "someString_1";
 function increment($matches) {
   return ++$matches[1];
 }

echo $string =  preg_replace_callback( "|(\d+)|", "increment", $string);

答案 1 :(得分:2)

php.net上有解释http://www.php.net/manual/en/language.operators.increment.php

PHP在处理字符变量而不是C的算术运算时遵循Perl的约定。例如,在PHP和Perl $ a ='Z'中; $ A ++;将$ a变为'AA',而在C a ='Z';一个++;将a转换为'['('Z'的ASCII值为90,'['的ASCII值为91)。请注意,字符变量可以递增但不递减,即使只支持纯ASCII字母和数字(a-z,A-Z和0-9)。递增/递减其他字符变量无效,原始字符串不变。

答案 2 :(得分:1)

您的解决方案可能有效,但想象一下,有人必须在稍后修改您的代码。如果你在某个地方看到$string++,你会猜测(没有任何研究)它做了什么吗?即使它有效,在我看来,创建一个能够满足您需要的功能,并且有一个名称,清楚地表明它是做什么的,这样做会好得多。