为什么用PHP增加字符但不减少是可以的呢?
PHP
<?php
$a = "a";
echo $a. "<br>"; //a
echo ++$a. "<br>"; //b
echo --$a. "<br>"; //b
>
是否有一种简单的方法--$a
来减少一个特征?
使用chr
确定了解决方案。
答案 0 :(得分:6)
没有简单的方法,特别是如果你从像'AA'
这样的多字符字符串开始。
据我所知,PHP Internals团队无法决定在
时做什么$x = 'A';
$x--;
所以他们只是决定不打扰实现字符递减逻辑
答案 1 :(得分:6)
没有直接减少字母表的方法。但是只需一个简单的功能就可以实现它:
function decrementLetter($Alphabet) {
return chr(ord($Alphabet) - 1);
}
答案 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风格的前后增量和减量运算符。
递增/递减运算符
++$a
将增量预算$a
加1,然后返回$a
。$a++
后增量返回$a
,然后将$a
增加一。--$a
预减法将$a
减1,然后返回$ a。$a--
后递减返回$a
,然后将$a
递减一。注意:增量/减量运算符仅影响数字和 字符串。数组,对象和资源不受影响。递减
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);
}
}
}