empty("0")

可能最具争议的改变是对 empty() 函数行为的改变。一个仅包含字符“0”(是零,不是英文字母“O”)的字符串现在被认为是空字符串,而 PHP 3 中则相反。

这个改变对 web 程序很有意义,所有的 input 表单返回的都是 string,甚至填写的是数字。PHP 能够自动进行类型转换。但另一方面,这可能不是代码的原意,可能导致代码莫名其妙的错误。