Passing in an empty string to a function that states it takes float as it's argument is certainly an edge case the developer should have thought of.
Not what for user-provided input? The source of a string does not matter to this rule of PHP: a string used in numeric context will be parsed and converted, if it can not be parsed as a number its numeric value will be 0. That's it. That's how the language defines strings in numeric contexts.
> That's just a dumb thing to do in any language.
Sure, you won't get any argument from me on that, but that remains how PHP works and has always worked.
php> echo "2coolforschool" + 1;
3
php> echo "2.1coolforschool" + 1;
3.1
php> echo "coolforschool" + 1;
1
So treating all kinds of garbage as valid numbers is absolutely part of PHP.
Do the stupidest thing that could possibly work; and it probably will. For now.