<?php
$s = "pa99";
$s++;
echo $s;
?>
上面的代码输出到“pb00”我想要的是“pa100”等等。
但如果它的“pa”,我希望它转到“pb”,它与增量运算符配合得很好。
<?php
$s = "pa99";
$s++;
echo $s;
?>
上面的代码输出到“pb00”我想要的是“pa100”等等。
但如果它的“pa”,我希望它转到“pb”,它与增量运算符配合得很好。
正如迈克尔所说,你正在尝试增加一个字符串 - 它不能那样工作(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 在处理字符变量而不是 C 的算术运算时遵循 Perl 的约定。例如,在 PHP 和 Perl 中 $a = 'Z'; $a++; 将 $a 变成 'AA',而在 C 中 a = 'Z'; 一个++;将 a 转换为 '['('Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91)。请注意,字符变量可以递增但不能递减,即使如此,也仅支持纯 ASCII 字符(az 和 AZ)。增加/减少其他字符变量没有效果,原字符串不变。
<?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;
?>