在PHP中,你可以增加一个这样的字符:
$b = 'a'++;
我想知道的是从语言角度来看为什么会这样? php是否将字符解释为ASCII值,因此递增它只会使ASCII值1更高,这将是字母表中的下一个字母?
答案 0 :(得分:3)
检查出来:http://php.net/manual/en/language.operators.increment.php
PHP在处理字符变量而不是C的算术运算时遵循Perl的约定。
例如,在PHP和Perl $ a =' Z&#39 ;; $ A ++;将$ a变成'AA',而在C a =' Z&#39 ;;一个++;变成了' [' (ASCII值为' Z'为90,ASCII值为' ['为91)。
请注意,字符变量可以递增但不递减,即使只支持纯ASCII字母和数字(a-z,A-Z和0-9)。递增/递减其他字符变量无效,原始字符串不变。
答案 1 :(得分:0)
答:为什么英语从左到右书写,阿拉伯语从右到左?这是设计语言的人做出的决定。他们可能有自己的理由这样做。我坚信这是设计,就像你进行算术加法($ a + 1)一样,它不会以同样的方式工作。
$a = 'a';
echo $a++; // output: 'a' , a is echoed and then incremented to 'b'
echo ++$a; // output: 'c' , $a is already 'b' and incremented first and then becomes 'c'
echo $a+1; // output: '1' , When in an arathamatic operation a string value is considered 0
// in short '++' seems to have been given special intrepretation with string
// which is equivalent to
echo $a = chr(ord($a)+1); // output: 'd' , the ascii value is incremented
感谢您提出的问题,我不知道' ++'适用于字符串。