为什么 "/" . date("Y") + 1
在PHP中返回1
?为什么“/”。 PHP中的日期(“Y”)+ 1返回1?
还有一个类似的问题,为什么date("Y") . "/" . date("Y") + 1
返回2011
?
我quessing它是与运算符优先级,因为date("Y") . "/" . (date("Y") + 1)
不会返回预期"2010/2011"
为什么 "/" . date("Y") + 1
在PHP中返回1
?为什么“/”。 PHP中的日期(“Y”)+ 1返回1?
还有一个类似的问题,为什么date("Y") . "/" . date("Y") + 1
返回2011
?
我quessing它是与运算符优先级,因为date("Y") . "/" . (date("Y") + 1)
不会返回预期"2010/2011"
没错。 .
结合比+
更紧密,所以:
("/" . date("Y")) + 1
左侧没有任何数字开始,所以当你将其转换为数字,则它变为0:
"/" . date("Y") + 1
如解析。同样的,后者:
(date("Y") . "/" . date("Y")) + 1
的+
开始的左侧与2010年然后一些非数字的,所以当它被转换为数字的,我t变为2010.然后,您添加1.
也见http://www.php.net/manual/en/language.types.string.php#language。 types.string.conversion – Matthew 2010-12-11 22:42:32
好吧,PHP的弱打字真的让我在这里。我没有猜到那个“/”。日期(“Y”)将评估为0.我认为结果将是一个字符串。棘手。 – Johan 2010-12-11 22:47:04
@ konforce嗯,是的。不确定我喜欢这种情况下PHP的行为。我喜欢动态打字,但我不确定打字部分是否薄弱。有时候它有点弱......;) – Johan 2010-12-11 22:49:37