我遇到了一些增加字符串值的问题,例如:
$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使用字符串的方式
答案 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++
,你会猜测(没有任何研究)它做了什么吗?即使它有效,在我看来,创建一个能够满足您需要的功能,并且有一个名称,清楚地表明它是做什么的,这样做会好得多。