【发布时间】: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