Почему это нормально, чтобы увеличивать характер, но не уменьшаться с помощью PHP?
PHP
<?php $a = "a"; echo $a. "<br>"; //a echo ++$a. "<br>"; //b echo --$a. "<br>"; //b >
Есть ли простой способ: --$a
для уменьшения charrater?
Было решение, используя chr
.
Нет прямого пути к уменьшению алфавитов. Но с простой функцией вы можете достичь этого:
function decrementLetter($Alphabet) { return chr(ord($Alphabet) - 1); }
Источник, благодаря Райан О'Хара
Нет простого способа, особенно если вы начинаете с многосимвольных строк, таких как 'AA'
.
Насколько я могу судить, команда PHP Internals не могла решить, что делать, когда
$x = 'A'; $x--;
поэтому они просто решили не беспокоиться о реализации логики декремента персонажа
Попробуйте с этим. Выход – aba
.
$a = "a"; echo $a. "<br>"; echo $next = chr(ord($a) + 1). "<br>"; echo $prev = chr(ord($next) - 1 ). "<br>";
Как упоминалось в chris85 : « Символьные переменные могут быть увеличены, но не уменьшены »
PHP поддерживает операторы pre-and post-increment и decment для C-стиля.
Операторы приращения / сокращения
++$a
Pre-increment Увеличивает $a
на единицу, затем возвращает $a
. $a++
Post-increment Возвращает $a
, а затем увеличивает $a
на единицу. --$a
Пре декремент Уменьшает $a
на единицу, затем возвращает $ a. $a--
Возвращает $a
, а затем уменьшает $a
на единицу. Примечание. Операторы increment / decment влияют только на числа и строки. Массивы, объекты и ресурсы не затрагиваются. Уменьшение значений
NULL
также не влияет, но приращение их приводит к 1.
SRC: http://php.net/manual/en/language.operators.increment.php
Простую функцию вы можете достичь:
function decrementChar($Alphabet) { return chr(ord($Alphabet) - 1); }