用php减少字符

时间:2016-05-04 12:04:35

标签: php

为什么用PHP增加字符但不减少是可以的呢?

PHP

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

是否有一种简单的方法--$a来减少一个特征?

使用chr确定了解决方案。

6 个答案:

答案 0 :(得分:6)

没有简单的方法,特别是如果你从像'AA'这样的多字符字符串开始。

据我所知,PHP Internals团队无法决定在

时做什么
$x = 'A';
$x--;

所以他们只是决定不打扰实现字符递减逻辑

答案 1 :(得分:6)

没有直接减少字母表的方法。但是只需一个简单的功能就可以实现它:

function decrementLetter($Alphabet) {
    return chr(ord($Alphabet) - 1);
}

Source, thanks to Ryan O'Hara

答案 2 :(得分:2)

请试试这个。输出为a b a

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

答案 3 :(得分:1)

提到chris85:&#34; 字符变量可以增加但不减少 &#34;

  

PHP支持C风格的前后增量和减量运算符。

递增/递减运算符

  1. ++$a将增量预算$a加1,然后返回$a
  2. $a++后增量返回$a,然后将$a增加一。
  3. --$a预减法将$a减1,然后返回$ a。
  4. $a--后递减返回$a,然后将$a递减一。
  5.   

    注意:增量/减量运算符仅影响数字和   字符串。数组,对象和资源不受影响。递减   NULL值也没有效果,但递增它们会产生1。

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

答案 4 :(得分:0)

您可以实现简单的功能:

function decrementChar($Alphabet) {
return chr(ord($Alphabet) - 1);
}

答案 5 :(得分:0)

你可以使用这个。

function stringDecrementer($string)
{
    $len = strlen($string);
    if ($len == 1) {
        if (strcasecmp($string,"A") == 0) {
            return "A";
        }
        return chr(ord($string) - 1);
    } else {
        $s = substr($string, -1);
        if (strcasecmp($s, "A") == 0) {
            $s = substr($string, -2, 1);
            if (strcasecmp($s, "A") == 0) {
                $s = "Z";
            } else {
                $s = chr(ord($s) - 1);
            }
            return substr($string, 0, $len - 2) . $s;
        } else {
            return substr($string, 0, $len - 1) . chr(ord($s) - 1);
        }
    }
}