增加php中的角色

Mar*_*ace 1 php

相对于字母位置增加php中的字符的工作方式如下:

$a = 'a'; 
++$a;
echo $a;
Run Code Online (Sandbox Code Playgroud)

输出为'b'

但是,是否可以将位置增加倍数,例如10.

$a = 'a'; 
$a += 2;
echo $a;
Run Code Online (Sandbox Code Playgroud)

这输出一个不是'c'的整数

Ale*_* 42 6

您可以使用ord()将字符转换为ASCII值,递增/递减该值,然后使用chr()将其转换回字符:

$a = 'a';
$num = 2;
$a = chr(ord($a)+$num);
echo $a;
// outputs c
Run Code Online (Sandbox Code Playgroud)

ord - 返回字符
chr的 ASCII值- 返回特定字符

如果您希望增量/减量包围超过的值,z则可以使用:

$a = 'a';
$num = 28;
echo chr((26 + (ord($a)+$num-97)) % 26 + 97);
// outputs c
Run Code Online (Sandbox Code Playgroud)

注意:由于负数的php模数返回负数,这将无效或$num值<-26替代解决方案包括使用此处gmp_mod提到的.

希望这可以帮助!