Я хочу создать функцию, которая не будет создавать ошибки, если она передана аргументам, которые не являются действительными ключами массива, и успешно проверить, задан ли аргумент как ключ в массиве.Как определить, является ли переменная допустимым ключом массива?
static function IsAwesome($name) {
return isset(self::$_awesomeThings[$name]);
}
Это создает прекрасное сообщение, когда кто-то проходит, скажем, объект как $ имя:
Warning: Illegal offset type in isset or empty in ...
Что это самый простой способ, чтобы избежать такого поведения, не исключая потенциально действительных ключей, как true
, например, ? Предположим, что существующий код, который не может быть изменен, уже использует это поведение.
[GetType()] (https://secure.php.net/manual/en/function.gettype.php), а затем править out массивов и объектов согласно [документации массива PHP] (https://secure.php.net/manual/en/language.types.array.php) – syck
Зависит от того, что вы хотите сделать, если не действительный тип. 'is_string() || is_int() '. – AbraCadaver
BTW 'false' будет передан' 0' и 'true' в' 1', поэтому они действительно недействительны. – AbraCadaver