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

role
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";
  1. $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
  1. $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
  1. $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