#49524 [Bgs]: Inequalities example in SWITCH documentation
ID: 49524
Updated by: torben@php.net
Reported By: matt at plasmacoustics dot com
Status: Bogus
Bug Type: Documentation problem
PHP Version: 5.3.0
New Comment:
If this sort of thing is documented at all, I would love to see any
mention of switch() being used this way be prefaced with wording along
the lines of "Even though it's bad form, you can use switch() like
this. . .". This stuff can be more readably and more efficiently be
implemented using if..elseif blocks. if..elsif is also less error-prone
(as this bug report proves).
As for coders using what they find in the User Notes, that's strictly
at their own risk. While we try to keep on top of the notes, doing so
is a gargantuan task and keeping edge cases, syntax tricks, and bad
code out just doesn't always happen.
Previous Comments:
------------------------------------------------------------------------
[2009-10-11 03:46:44] matt at plasmacoustics dot com
Dan,
Here was the submission a fortnight ago:
http://bugs.php.net/bug.php?id=49679
as per your suggestion.
It was flagged 'Bogus'.
This week I debugged two clients scripts both suffering from this exact
logic error. Both developers had built on bad examples from SWITCH
documentation comments.
I brought attention to the widespread misunderstanding, resulting in
your snappy response.
I suggested a code example that will make this clear in future, which
was ignored.
If both you and fa don't wish to document the correct behaviour, please
just say so. Let us submitters and you developers try to read more
carefully and demonstrate some cohesion as a team.
------------------------------------------------------------------------
[2009-09-23 18:48:27] danbrown@php.net
I think that's a good idea, Matt. Would you please re-submit that as a
suggestion? Submitting it as a "Documentation problem," but with the
subject something along the lines of "Suggestion: Addition of Example
to
Switch Page" should suffice.
Also, feel free to supply an example you think would be of good use for
inclusion as an official example. Just be sure to test and re-test it,
just as we would ourselves. Some folks out there in userland make a
habit of simply copying and pasting code, thinking it will always work
as advertised (and be safe to run in the first place)! ;-P
Thanks for your efforts, Matt. We absolutely appreciate when folks
take
the time to help the community, such as you're continuing to do
yourself!
------------------------------------------------------------------------
[2009-09-23 18:27:06] matt at plasmacoustics dot com
Dan:
There is another example, see
http://au.php.net/manual/en/control-structures.switch.php#93342
If $totaltime is ZERO, a confusing semantic error would result.
Reliance on the arbitrary argument being interpreted as TRUE seems
widespread.
Why not add a SWITCH example covering INEQUALITIES to the
documentation?
------------------------------------------------------------------------
[2009-09-12 02:01:59] matt at plasmacoustics dot com
Thanks for pointing out the errors. You're right, there are many
mistakes in the submission, do feel free to delete it.
I do maintain though that the SWITCH argument would be best as TRUE to
guarantee the expected behaviour instead of relying on the type
conversion.
jonybd at yahoo dot com has a note that deals with inequalities. An
official example would be well received if you so wished. Cheers.
------------------------------------------------------------------------
[2009-09-11 15:41:57] danbrown@php.net
Three things to point out:
1.) You posted the bug from a completely different page than the one to
which you make reference.
2.) You grossly misquoted the code of which you complained.
3.) You didn't test it yourself, because - if you had - you'd see that
it works as advertised.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/49524
--
Edit this bug report at http://bugs.php.net/?id=49524&edit=1
Thread (9 messages)