Символ декремента с php

Почему это нормально увеличивать символ, но не уменьшать его с помощью PHP?

РНР

<?php
    $a = "a";
    echo $a. "<br>";  //a
    echo ++$a. "<br>";  //b
    echo --$a. "<br>";  //b
>

Есть ли простой способ --$aуменьшить charrater?

Было решение с помощью chr.

Метки

5 ответов

  1. Нет простого способа, особенно если вы начинаете с многозначных строк, таких как 'AA'.

    Насколько я могу установить, команда PHP Internals не могла решить, что делать, когда

    $x = 'A';
    $x--;
    

    поэтому они просто решили не утруждать себя реализацией логики декремента символов

  2. Как chris85 отметил: «символьные переменные могут быть увеличены, но не уменьшены«


    PHP поддерживает операторы pre-и post — increment и decrement в стиле C.

    Операторы Увеличения / Уменьшения

    1. ++$a Pre-increment инкременты $aна единицу, затем возвращается $a.
    2. $a++ Post-increment возвращает$a, затем увеличивает $aна единицу.
    3. --$a Pre-decrement уменьшает $aна единицу, затем возвращает $a.
    4. $a-- Post-decrement возвращает$a, затем уменьшает $aна единицу.

    Примечание: операторы инкремента/декремента влияют только на числа и
    веревка. Массивы, объекты и ресурсы не затрагиваются. Уменьшение
    NULLзначения также не влияют, но приращение их приводит к 1.


    SRC: http://php.net/manual/en/language.operators.increment.php

  3. Пожалуйста, попробуйте с этим. Выход есть a b a.

    $a = "a";
    echo $a. "<br>";  
    echo $next = chr(ord($a) + 1). "<br>";
    echo $prev = chr(ord($next) - 1 ). "<br>";