respect-validation/docs/rules/Undef.md
Henrique Moody 562d98d805
Refactor the NotEmpty rule
Since we have the ability to use `not` as a prefix, having rules that
validate negative behaviour makes them a bit inflexible, verbose, and
harder to understand.

This commit will refactor the `NotEmpty`, and rename it to `Falsy`. It
will no longer trim strings, because Blank does a much better job at it;
it only simulates the behaviour of PHP’s native `empty()` function.

Because `Falsy`, `Blank`, and `Undef` have similar behaviour, I created
a page to demonstrate the difference and show when the user should use
one or the other.

Assisted-by: Cursor (claude-4.5-opus-high)
2025-12-29 12:48:35 +01:00

1.8 KiB

Undef

  • Undef()

Validates if the given input is undefined. By undefined we consider null or an empty string ('').

We recommend you to check Comparing empty values for more details.

v::undef()->isValid(''); // true
v::undef()->isValid(null); // true

Other values similar to undefined values are considered defined:

v::undef()->isValid([]); // false
v::undef()->isValid(' '); // false
v::undef()->isValid(0); // false
v::undef()->isValid('0'); // false
v::undef()->isValid('0.0'); // false
v::undef()->isValid(false); // false
v::undef()->isValid(['']); // false
v::undef()->isValid([' ']); // false
v::undef()->isValid([0]); // false
v::undef()->isValid(['0']); // false
v::undef()->isValid([false]); // false
v::undef()->isValid([[''], [0]]); // false
v::undef()->isValid(new stdClass()); // false

Templates

Undef::TEMPLATE_STANDARD

Mode Template
default {{subject}} must be undefined
inverted {{subject}} must be defined

Template placeholders

Placeholder Description
subject The validated input or the custom validator name (if specified).

Categorization

  • Miscellaneous

Changelog

Version Description
3.0.0 Renamed to Undef and changed the behavior
1.0.0 Created as NotOptional

See also: