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

I want to create a function that won't create errors if it's passed arguments that aren't valid array keys, and successfully check if the argument is set as a key in an array.

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

This creates a lovely message when someone passes, say, an object as $name:

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

What's the simplest way to avoid this behavior without excluding potentially valid keys, like true, for example? Assume existing code that can't be changed already relies on this behavior.

maybe you need something like:

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

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