<?php
$s = "pa99";
$s++;
echo $s;
?>
以上代码输出到“pb00” 我想要的是“pa100”等等。
但是如果它是“pa”,我希望它转到“pb”,它与之相配 增量运算符。
答案 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之间的数字并递增它们,然后在溢出时递增前一个字母。不过,这有点混乱。
要将整数与字符串分开,请尝试以下操作:
答案 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;
?>