Validation Patterns
Enum Choices
Validate a value against a small set of allowed strings.
enum-choice
Many inputs must be one of a few known values. `in_array` can compare against an immediate list and produce a scalar decision.
Enum Choices
enum_choice.php
Replay: real traced execution (multi-file project)
<?php
$role = "guest";
$allowed = in_array($role, ["admin", "editor", "guest"], true);
$status = $allowed ? "accepted" : "rejected";
echo "role=" . $role . "\n";
echo "status=" . $status . "\n";
<?php
$role = "admin";
$allowed = in_array($role, ["admin", "editor", "guest"], true);
$status = $allowed ? "accepted" : "rejected";
echo "role=" . $role . "\n";
echo "status=" . $status . "\n";
<?php
$role = "owner";
$allowed = in_array($role, ["admin", "editor", "guest"], true);
$status = $allowed ? "accepted" : "rejected";
echo "role=" . $role . "\n";
echo "status=" . $status . "\n";
$role ← guest, $allowed ← 1, $status ← accepted
1<?php2$role→ guest = "guest"; //@role="admin", "owner"3$allowed→ 1 = in_array($roleguest, ["admin", "editor", "guest"], true);4$status→ accepted = $allowed1 ? "accepted" : "rejected";56echo "role=" . $roleguest . "\n";7echo "status=" . $statusaccepted . "\n";outputrole=guest status=accepted
$role ← admin, $allowed ← 1, $status ← accepted
1<?php2$role→ admin = "admin";3$allowed→ 1 = in_array($roleadmin, ["admin", "editor", "guest"], true);4$status→ accepted = $allowed1 ? "accepted" : "rejected";56echo "role=" . $roleadmin . "\n";7echo "status=" . $statusaccepted . "\n";outputrole=admin status=accepted
$role ← owner, $allowed ← (empty), $status ← rejected
1<?php2$role→ owner = "owner";3$allowed→ (empty) = in_array($roleowner, ["admin", "editor", "guest"], true);4$status→ rejected = $allowed(empty) ? "accepted" : "rejected";56echo "role=" . $roleowner . "\n";7echo "status=" . $statusrejected . "\n";outputrole=owner status=rejected