爲什麼 "/" . 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