在字符串之前添加+符号将其转换为0,为什么?

时间:2015-04-08 18:57:55

标签: php

我知道之前已经问过这个问题,但我想不出如何搜索它并且无法在文档中找到它(虽然我知道它在某个地方)..

为什么$a在此示例中变为0?

$a = "Foo";
echo +$a; // 0 .. and same with echo -$a;

1 个答案:

答案 0 :(得分:5)

因为加号(+)你说它是一个正数,所以字符串被隐式转换为int意味着这里:0。

您也可以在手册中看到这一点:http://php.net/manual/en/language.types.integer.php#language.types.integer.syntax

从那里引用:

  

整数可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示法指定,可选地前面带符号( - 或+)。