Edit report at https://bugs.php.net/bug.php?id=60402&edit=1
ID: 60402 User updated by: alagar86 at gmail dot com Reported by: alagar86 at gmail dot com Summary: "0.0" (0.0 as a string) values are considered as not empty Status: Bogus Type: Bug Package: *General Issues Operating System: Windows/Linux PHP Version: 5.3.8 Block user comment: N Private report: N New Comment: I agree that manual doesn't say about "0.0" (a string). But we have the following situation: $zeroFloatString = "0.0"; (0.0 as a string) $zeroFloat = 0.0; (0 as a float) var_dump($zeroFloatString == $zeroFloat); // true var_dump(empty($zeroString)); true var_dump(empty($zeroFloatString)); false I think it isn't normal. If A == B, why f(A) != f(B) ? Previous Comments: ------------------------------------------------------------------------ [2011-11-30 16:36:48] cataphr...@php.net The manual says 0.0 (i.e. the same as 0., or (float) 0), not "0.0" (a string). Closing as bogus. ------------------------------------------------------------------------ [2011-11-28 14:44:36] alagar86 at gmail dot com Description: ------------ Hi PHP team. For empty() we have the following rule : The following things are considered to be empty: "" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) But values like "0.0" are cosidered as not empty for example : $zeroFloatString = "0.0"; (0.0 as a string) var_dump(empty($zeroFloatString)); prints false . However the $zeroFloatString contains "0.0" value. Thanks, Anton Test script: --------------- $emptyString = ""; (an empty string) $zeroInt = 0; (0 as an integer) $zeroFloat = 0.0; (0 as a float) $zeroString = "0"; (0 as a string) $zeroFloatString = "0.0"; (0.0 as a string) var_dump(empty($emptyString)); true var_dump(empty($zeroInt)); true var_dump(empty($zeroFloat)); true var_dump(empty($zeroString)); true var_dump(empty($zeroFloatString)); false Expected result: ---------------- bool(true) bool(true) bool(true) bool(true) bool(true) Actual result: -------------- bool(true) bool(true) bool(true) bool(true) bool(false) // var_dump(empty($zeroFloatString)) where $zeroFloatString = "0.0" ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60402&edit=1