is_numeric() doesn't quite do what he wants, since his input will be arriving (containing digits or not) as a string since it's coming from an html POST form. What you want for that is a regex that contains whatever level of complexity you want.
For example, just requiring that the "phone number" contains one or more digits and/or dashes:
ereg('[0-9\-]+$', $phone)
Requiring a North American Numbering scheme number including area code:
ereg('[0-9]{3}\-[0-9]{3}\-[0-9]{4}$', $phone)
Extending this to match complete international numbers is a bit more complicated...