为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 in_array 以 Object::Class 为键返回 false?

为什么 in_array 以 Object::Class 为键返回 false?

PHP
函数式编程 2022-12-23 10:10:06
这很奇怪,我不明白为什么。我有这个数组:$exludedAction = [UserController::class => [            "login", "register"    ]];当我检查键是否为 in_array 时,它返回 false:$type = get_class($userControllerObject);$cl = in_array($type, $exludedAction); // is false我检查严格比较: $c = $type === UserController::class; // returns true请注意,UserController::class它位于命名空间内:App\namespace\class.并检查是否isset返回 true: isset($exludedAction[$type]); // returns true
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

in_array在数组中搜索,而不是。你应该array_key_exists改用:

$exludedAction = [UserController::class => [

            "login", "register"

    ]

];



$type = get_class($userControllerObject);

$cl = array_key_exists($type, $exludedAction);


var_dump($cl);

输出:


bool(true)

3v4l.org 上的演示


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 54 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信