Apparently 10am is still too early in the morning for me. For starters, your logic was reversed... you claim "there is a $number" when that variable is NULL, but I think you wanted the opposite (unless your goal is to lie to the user?).
Furthermore, because you didn't use the '===' identical operator, note that values such as the empty string, FALSE, the integer zero, or the floating point number 0.0 will all claim that "There is no value" (even though one or more of those are potentially perfectly valid values).
(Also note that I personally would never use is_null() here since I would instead first think to use the aforementioned operator instead. "To each his own" applies in that situation.)