ID:               38130
 User updated by:  btherl at yahoo dot com dot au
 Reported By:      btherl at yahoo dot com dot au
 Status:           Assigned
 Bug Type:         Documentation problem
 Operating System: Linux
 PHP Version:      Irrelevant
 Assigned To:      philip
 New Comment:

Sorry, exec() behaves more normally in php 5.1.4.  Ignore that part :)


Previous Comments:
------------------------------------------------------------------------

[2006-07-19 07:09:59] btherl at yahoo dot com dot au

Thanks for your thoughtful reply!

I think it's too much to add to every page.  No other language that I'm
aware of documents the return values when given nonsense arguments. 
They just say "The result is undefined."

It can be mystifying though, to have a ($ret === false) test fail when
a function says it returns false on failure.  For this reason, I think
it's worth saying somewhere that you can't expect anything if you give
unexpected parameters.

I just discovered that the common functions fopen() and fclose() return
false when given strange parameters.  And exec() returns "" when given
an array or an integer.  exec(5000) doesn't even generate a warning. 
Maybe NULL is not the most common return value?

My next try:

"Note that if the parameters given to a function are not what it
expects, such as passing an array where a string is expected, the
return value is undefined."

Saying "not the correct type" may not be good enough, since functions
like fopen() need specific values of a specific type.

------------------------------------------------------------------------

[2006-07-19 06:18:42] [EMAIL PROTECTED]

For most users it's not an issue so that's likely where the "waste of
time" comment in bug #38127 came from. The thought of this information
overload and worrying about having it mentioned in every function man
page... A little scary but something to consider. I personally don't
have a strong feeling either way.

Your suggestion of having it in a location, like under "Internal
(built-in) functions" sounds reasonable and thank you for the write-up
it looks good. The about.prototypes section is another possible
location but perhaps not as appropriate. I agree with colder, it should
not be listed under language.types.null.

There are some function docs that mention NULL as a possible return
value but this is rare. Regarding #38127 those docs should be reworded
as it's misleading.

Lastly, this bug report was left open so no need to think it'll be
ignored ;-) 

------------------------------------------------------------------------

[2006-07-19 01:23:13] btherl at yahoo dot com dot au

The origin of this report was when I suggested that a function document
that it returns NULL when arguments are incorrectly typed.

The response I got was "Most functions return NULL on bogus parameters.
 No need to waste time with this."

Which leads to the obvious question: If there is no need to document
that function X returns NULL on bogus parameters, then where is it
documented?

How about this:

"The return value of built-in functions is undefined when the
parameters are not of the correct type.  Most functions will return
NULL, but this is just a convention, and cannot be relied on."

Anyone who wishes to reply with "This is a waste of time", save your
time and don't hit submit :)  I'm not writing this for you.

------------------------------------------------------------------------

[2006-07-18 10:59:36] [EMAIL PROTECTED]

"most functions" : Returning NULL is not a general rule, thus it
shoulnd't IMO be documented globally such as in the docs for NULL.

------------------------------------------------------------------------

[2006-07-18 10:12:05] btherl at yahoo dot com dot au

Description:
------------
Most functions return NULL if their arguments are invalid.  This should
be documented somewhere, perhaps in "Internal (built-in) functions".  It
may be useful to document it in the  documentation for NULL itself.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=38130&edit=1

Reply via email to