PHP增量运算符

时间:2012-08-21 16:38:16

标签: php auto-increment string-concatenation

<?php
 $s = "pa99";
 $s++;
 echo $s;
?>

以上代码输出到“pb00” 我想要的是“pa100”等等。

但是如果它是“pa”,我希望它转到“pb”,它与之相配 增量运算符。

3 个答案:

答案 0 :(得分:12)

正如迈克尔所说,你正试图增加一个字符串 - 它不会那样(tm)。你想要做的是:

<?php
 $s = "pa"; //we're defining the string separately!
 $i = 99; //no quotes, this is a number
 $i++;
 echo $s.$i; //concatenate $i onto $s
?>

没有按照你要求的方式增加字符串(aa,ab等)的自动方式。您可以将每个字母转换为1-26之间的数字并递增它们,然后在溢出时递增前一个字母。不过,这有点混乱。

要将整数与字符串分开,请尝试以下操作:

PHP split string into integer element and string

答案 1 :(得分:4)

来自文档:

  

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

答案 2 :(得分:0)

<?php

  $s_letter = substr($s,0,2);
  $s_number = substr($s,2,9);

  $s_letter++; $s_number++;

  $s_result = $s_letter.$s_number;

  echo $s_result;

?>