Validation by Direct Comparison

Problem

You need to make sure a value is equal to or not equal to some specific value, or that it lies within a given range of values.

Solution

Perform a direct comparison.

Discussion

The simplest kind of validation is to perform comparisons against specific literal values:

# require a nonempty value
$valid = ($val ne "");
# require a specific nonempty value
$valid = ($val eq "abc");
# require one of several values
$valid = ($val eq "abc" || $val eq "def" || $val eq "xyz");
# require value in particular range (1 to 10)
$valid = ($val >= 1 && $val <= 10);

Most of those tests perform string comparisons. The last is a numeric comparison; however, a numeric comparison often is preceded by preliminary tests to verify first that the value doesn’t contain non-numeric characters. Pattern testing, discussed in the next section, is one such way to do that.

String comparisons are case sensitive by default. To make a comparison case insensitive, convert both operands to the same lettercase:

# require a specific nonempty value in case-insensitive fashion
$valid = (lc ($val) eq lc ("AbC"));

Get MySQL Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.