PHP BackedEnum接口无法执行instanceof运算符

cczfrluj  于 2023-01-29  发布在  PHP
关注(0)|答案(1)|浏览(69)

给定:

enum TestEnum: string
{
  case CASE_1 = "first case";
  case CASE_2 = "Second case";
}

这应该返回true

TestEnum::class instanceof \BackedEnum

但是我得到了false
我尝试了这篇文章中的以下内容(它无法在Laravel Tinker REPL中运行,而是作为脚本运行?):

interface TestEnumInterface extends \BackedEnum
{
    public function foo(): string;
}

enum TestEnum: string implements TestEnumInterface
{
    case CASE_1 = 'case 1';
    case CASE_2 = 'case 2';

    public function foo(): string
    {
        return 'bar';
    }
}


TestEnum::class instanceof \BackedEnum //false
TestEnum::class instanceof \TestEnumInterface //false

我错过了什么?运行PHP v8.1.13
谢谢

cbjzeqam

cbjzeqam1#

TestEnum::class不是对象的示例,它是字符串的“示例”。TestEnum::CASE_1是TestEnum或TestEnumInterface的示例

相关问题