Оператор инкремента PHP
<?php
$s = "pa99";
$s++;
echo $s;
?>
Приведенный выше код выводит на "pb00" То, что я хотел, было "pa100" и так далее.
Но также в случае его "pa", я хочу, чтобы он пошел в "pb", который хорошо работает с оператором приращения.
3 ответа
Вы, как говорит Майкл, пытаетесь увеличить строку - это не работает (тм). Что вы хотите сделать, это:
<?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 следует соглашению Perl при работе с арифметическими операциями над символьными переменными, а не с Си. Например, в PHP и Perl $a = 'Z'; $ А ++; превращает $ a в 'AA', а в C a = 'Z'; A ++; превращает a в '[' (ASCII-значение 'Z' равно 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;
?>