Я хотел бы передать массив функции и функция будет вести себя по-разному в зависимости от того, массив массивов "списка" или массив "хэш". Например:.
myfunc(array("One", "Two", "Three")); // works
myfunc(array(1=>"One", 2=>"Two", 3=>"Three")); also works, but understands it a hash
Может выводиться что-то вроде:
One, Two, Three
1=One, 2=Two, 3=Three
ie: функция делает что-то по-другому, когда она "обнаруживает", что ей передается хеш, а не массив. Можете ли вы сказать, что я исхожу из фона Perl, где% хэшей - это разные ссылки из @arrays?
Я считаю, что мой пример значителен, потому что мы не можем просто проверить, является ли ключ числовым, потому что вы можете очень хорошо использовать числовые ключи в своем хеше.
Я специально стараюсь избегать использования беспорядочной конструкции myfunc(array(array(1=>"One"), array(2=>"Two"), array(3=>"Three")))