【问题标题】:Understanding why php increments characters the way it does理解为什么 php 会以这种方式递增字符
【发布时间】:2012-05-11 12:01:05
【问题描述】:

PHP 手册指出: PHP 在处理字符变量而不是 C 的算术运算时遵循 Perl 的约定。 例如,在 PHP 和 Perl 中,$a = 'Z'; $a++; 将 $a 转换为 'AA', 而在 C a = 'Z'; a++; 中将 a 变成 '[' ('Z'的ASCII值为90,'['的ASCII值为91)。

如果 PHP 在处理字符的算术运算时将字符转换为 ascii 值(假设),它不应该打印 '[' 而不是 AA 吗? PHP 为什么以及如何以这种方式递增字符?

【问题讨论】:

  • 为什么?因为这就是他们选择的方式。怎么样?,阅读源代码。
  • 哦,它基本上以 26 为基数。
  • 它说,它遵循 Perl 的约定。这意味着它按字符的 ASCII 值处理字符。它的工作方式不是一些奇怪的怪癖的副产品,而是一个深思熟虑的选择。

标签: php character arithmetic-expressions


【解决方案1】:

如果 PHP 在处理字符的算术运算时将字符转换为 ascii 值(假设)...

您的假设是错误的,因为它将"0"0 视为平等,而不是"0"48

$ php
<?php
echo "0" == 0 ; echo "\n";
echo "0" == 48 ; echo "\n";
1
​

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2020-04-07
    • 2021-11-11
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多