如何判断变量是否是有效的数组键?

时间:2016-10-11 15:30:41

标签: php

我想创建一个函数,如果它传递的参数不是有效的数组键,则不会创建错误,并成功检查参数是否设置为数组中的键。

static function IsAwesome($name) {
    return isset(self::$_awesomeThings[$name]);
}

当有人将对象作为$ name传递时,这会创建一条可爱的消息:

Warning:  Illegal offset type in isset or empty in ...

在不排除可能有效的密钥(例如true)的情况下,避免此行为的最简单方法是什么?假设现有的无法更改的代码已经依赖于此行为。

1 个答案:

答案 0 :(得分:1)

也许你需要这样的东西:

static function IsAwesome($name) {
    return array_key_exists((string)$name, self::$_awesomeThings);
}

http://php.net/manual/ru/function.array-key-exists.php