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