对于表达式$x ='z'; echo ++ $x; 为什么结果会是aa?

aikill 2005-11-19 10:26:29
哪位兄弟能解释一下?
...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
aikill 2005-11-26
  • 打赏
  • 举报
回复
Perl(十进制和二十六进制)
自增自减操作符 :++、--(与C++中的用法相同)
.不要在变量两边都使用此种操作符:++$var-- # error
.不要在变量自增/减后在同一表达式中再次使用:$var2 = $var1 + ++$var1; # error
.在PERL中++可用于字符串,但当结尾字符为'z'、'Z'、'9'时进位,如:
$stringvar = "abc";
$stringvar++; # $stringvar contains "abd" now

$stringvar = "aBC";
$stringvar++; # $stringvar contains "aBD" now

$stringvar = "abz";
$stringvar++; # $stringvar now contains "aca"

$stringvar = "AGZZZ";
$stringvar++; # $stringvar now contains "AHAAA"

$stringvar = "ab4";
$stringvar++; # $stringvar now contains "ab5"

$stringvar = "bc999";
$stringvar++; # $stringvar now contains "bd000"
.不要使用--,PERL将先将字符串转换为数字再进行自减
$stringvar = "abc";
$stringvar--; # $stringvar = -1 now

.如果字符串中含有非字母且非数字的字符,或数字位于字母中,则经过++运算前值转换为数字零,因此结果为1,如:
$stringvar = "ab*c";
$stringvar++;
$stringvar = "ab5c";
$stringvar++;
moodboy1982 2005-11-24
  • 打赏
  • 举报
回复
这个问题有人问过。
PHP和Perl的问题。
Gdj 2005-11-24
  • 打赏
  • 举报
回复
呃,26进制……
loveconan 2005-11-23
  • 打赏
  • 举报
回复
“++”可以用于字符串,当结尾字符为“z”、“Z”、“9”时进位
“--”不要用于字符串,Perl将字符串转换成数字再自减
Cain 2005-11-23
  • 打赏
  • 举报
回复
连这个都被发现了
强!
coolstr 2005-11-23
  • 打赏
  • 举报
回复
哇,又发现一个好功能,

以后在项目中可以考虑一下使用这个。
zalvsa 2005-11-23
  • 打赏
  • 举报
回复
呵呵,刚刚特地去测试了下,果然是按照字母顺序下来计算的。如果超过z就自动进个a.
aikill 2005-11-23
  • 打赏
  • 举报
回复
既然是perl继承,那么为什么perl中会得到这样的结果呢?
aikill 2005-11-23
  • 打赏
  • 举报
回复
++z不应该是左打括号({)吗?为什么会演变成aa了呢?
moodboy1982 2005-11-19
  • 打赏
  • 举报
回复
无法解释清楚。
反正就是这样的。
Meteorlet 2005-11-19
  • 打赏
  • 举报
回复
就是这样的,是从Perl里继承来的
-神仙- 2005-11-19
  • 打赏
  • 举报
回复
估计是个特色功能
$x ='az'; echo ++ $x;
输出ba
GaoXX 2005-11-19
  • 打赏
  • 举报
回复
az

z+1 == a
a+1 == b

字母特色的26进制而已
ccxxcc 2005-11-19
  • 打赏
  • 举报
回复
php是弱语言类型 字符也是可以进行运算的
++a;输出为b
++b;为c
++z;为aa
++(ab);为ac(只是示意 没写语法 测试的话代码里套)
以字母表递增为顺序
bacp 2005-11-19
  • 打赏
  • 举报
回复
没有试过,但估计是AS值发生变化吧

改成数字就不会这样了吧

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧