The specific usecase the bug reporter has provided DOES raise a warning, which he has intentionally routed to /dev/null
php -r 'print number_format("",0) . "\n";'
PHP Warning: number_format() expects parameter 1 to be double, string given in Command line code on line 1
Well, exactly. It doesn't say what happens, so pass floats or expect the unexpected. I get your point but I don't think I have ever seen documentation anywhere that covers all of the possible 'abuse' scenarios.
Re:We will try to stop fixing bugs in PHP
by lifthrasiir on Friday June 22, 2012 @12:15AM
(#4145368)
It is possible to add a catch-all clause to the documentation. For example any non-float argument is converted to float via floatval(), or raises an error, and so on. This behavior can be made consistent across every API so that the documentation has only one place to describe it. PHP is missing this either AFAIK.
> This behavior can be made consistent across every API so that the documentation has only one place to describe it.
Sounds like that's what 'zend_parse_parameters' does, actually.
I agree this would be ideal. Will definitely keep this in mind when writing documentation (and code) for my own tiny open source projects. All the double and triple checking just adds so much bloat most of the time...
Re:We will try to stop fixing bugs in PHP
by josegonzalez on Friday June 22, 2012 @12:17AM
(#4145372)
Documentation is hard, thats why most of it is open source. Pretty sure you can edit the php docs online if you so chose.
[1] http://php.net/number-format says the first argument expects float, and does not say what happens if it receives non-floats.