The perhaps most controversial change in behavior has happened to the
    behavior of the empty(). A String containing
    only the character '0' (zero) is now considered empty while it
    wasn't in PHP 3.
   
 
    This new behavior makes sense in web applications, with all input
    fields returning strings even if numeric input is requested, and
    with PHP's capabilities of automatic type conversion.  But on the
    other hand it might break your code in a rather subtle way,
    leading to misbehavior that is hard to track down if you do not
    know about what to look for.