Checking if a PHP variable is an enumeration
Published on 2022-12-09 • Modified on 2022-12-09
This snippet shows how to check if a variable is an enumeration. No is_enum()
function exists because is_*()
functions don't apply to objects. We have to do this instance check on the UnitEnum
interface instead.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use App\Entity\Article;
use App\Enum\ArticleType;
/**
* I am using a PHP trait to isolate each snippet in a file.
* This code should be called from a Symfony controller extending AbstractController (as of Symfony 4.2)
* or Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Services are injected in the main controller constructor.
*/
trait Snippet233Trait
{
public function snippet233(): void
{
$myEnumCase = ArticleType::BLOG_POST;
$article = new Article();
echo '$myEnumCase: '.($myEnumCase instanceof \UnitEnum ? 'it is an enum! ✅' : 'Not an enum ❌'); // @phpstan-ignore-line
echo PHP_EOL;
echo '$article: '.($article instanceof \UnitEnum ? 'it is an enum ! ✅' : 'Not an enum ❌'); // @phpstan-ignore-line
// That's it! 😁
}
}
Run this snippet More on Stackoverflow Read the doc Random snippet