jim
jim

Reputation: 23

empty and zero as a string

How do I write an if condition that will evaluate a zero as not empty? I'm writing a validation script and if the field is blank, I throw an error. In the case of a select with numerical values that start with 0 (zero), that should not considered to be empty. The manual states that a string 0 is considered to be empty and returns false. If I change empty to !isset, the zero works but the other textboxes that are truly empty pass validation. How do I write this to handle my case?

Upvotes: 2

Views: 205

Answers (3)

Gaurav
Gaurav

Reputation: 28755

if(!is_numeric($var) && empty($var))
{
    // empty
}
else
{
    // not empty
}

Upvotes: 0

user166390
user166390

Reputation:

if (strlen($x)) {
  // win \o/ (not empty)
}

Happy coding.

(All text box / form input content is inherently just text. Any meaning as a numerical value comes later and each representation can be validated. 0 is coerced back to "0" in strlen.)

Upvotes: 2

Charles Brunet
Charles Brunet

Reputation: 23120

Have you considered using is_null()?

if (is_null($value) || $value === "") {}

if (empty($value) && $value !== 0)

Upvotes: 0

Related Questions