This is, perhaps, obvious to most PHP developers. But it came somewhat as a surprise to me.
Using is_numeric () for validating a WordPress version string, such as ‘4.7’, does not seem to work very well when WordPress introduces minor releases such as ‘4.7.1’.
Since I cannot be bothered to figure out why it behaves in this (erratic, IMHO) way, I have since replaced the call to is_numeric () with a small function using a simple regular expression (regexp):
function wpVersionStringCheck ($vs) { return (preg_match ('/^(\d+\.)+\d+$/', $vs)); }
I’m sure there is a hole in there somewhere, but on the following strings at least, it gives me the desired result:
1.0 is valid
1.0. is invalid
1.0.1 is valid
1.banana.0 is invalid