Могут ли PHP-массивы содержать элементы разного типа?

в других языках программирования определение массивов-это то, что может содержать аналогичные элементы. Например, если я объявляю что-то вроде int i[] Он будет хранить целые числа, но в PHP один массив, кажется, держит строки и числа вместе.

будет ли число / целое число рассматриваться как строка в таком типе массива в PHP?

4 ответов


согласно Руководству по PHP вы действительно можете хранить гетерогенные типы внутри "массива" PHP-прокрутите вниз до примера 3.

обратите внимание, что, хотя в Примере ключи являются ints или строками, значения, назначенные в Примере, также являются ints и строками, демонстрируя, что можно хранить гетерогенные типы.

имейте в виду, что в случае различных типизированных ключей есть автоматическое литье, поэтому у вас может быть удивительно результаты в случае, когда, например, строка содержит допустимое десятичное представление.


в PHP массивы даже не массивы, они упорядочены хэш-таблицами.


не собираюсь ставить масло на огонь PHP массивов здесь нет массивов… Но да, вы можете поместить разные типы переменных (string, int,...) вместе в PHP-вещь под названием Array.


вы можете хранить все, что угодно в массиве.

будет ли число / целое число рассматриваться как строка в таком типе массива в PHP?

не при хранении. Однако, когда вы используете значение как таковое, PHP будет преобразовать его. Использование значения определяет его интерпретацию. (Внимание, ключ преобразуется при хранении, однако, если он считается числовым)