Re: docu of fread function
| From: | Gaetano Giunta | Date: | Thu, 31 May 2007 20:51:14 +0000 |
| Subject: | Re: docu of fread function | ||
| References: | 1 2 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969376491@lists.php.net to get a copy of this message | ||
Hannes Magnusson wrote:
Hi Giunta On 5/28/07, Gaetano Giunta <giunta.gaetano@gmail.com> wrote:Well, the way I understood the manual, I would have expected fread to return FALSE if something outside of the control of the programmer went wrong, ie. something that could happen to the stream while reading from it. Passing a negative lenght or a not-stream resource are errors on the part of the coder - thus if the code path that leads to the fread call checks for a positive length and a valid (opened) stream, checking later for false is completely useless - and relying on it not returning false as sure sign that everything went fine is a possible unintended consequence (ok, maybe a stupid assumption, but it might happen... to dumb people like me ;) I am not too sure about the best way to phrase it, but "Returns the read string or FALSE when invoked with erroneous parameters" is much more precise. Bye GaetanoHello there. The online manual for fread states clearly "Returns the read string or FALSE in case of error." I was always puzzled by that assertion, and today decided to digg into the code. As a matter of fact, the only time fread returns FALSE (on php 5) is when it is invoked whith a negative $length, or with a single parameter.In PHP4.4 and 5.2 (didn't check HEAD) fread() will return false (and a warning thrown) if the resource argument isn't a stream resource and if the the second argument (length) is 0 or less. NULL will be returned (and warning thrown) if fread() doesn't get passed two arguments (like most other functions).Maybe an update would be appropriate?I don't see anything wrong with them..