2012-09-20 38 views
12

En otros lenguajes de programación, la definición de matrices es algo que puede contener un tipo similar de elementos. Por ejemplo, si declaro algo como int i[], almacenará enteros, pero en PHP una única matriz parece contener cadenas y números.¿Pueden las matrices PHP contener elementos de tipos diferentes?

¿Se tratará el número/entero como una cadena en dicho tipo de matriz en PHP?

+0

Relacionados http://technosophos.com/content/php-arrays-are-not-arrays –

+1

¿Por qué no le das una oportunidad y nos avisas? :) (adicionalmente, se ve más como una pregunta SO que una pregunta P.SE) – haylem

Respuesta

9

According to the PHP manual hecho puede almacenar tipos heterogéneos dentro de una "matriz" de PHP - desplazarse hacia abajo para el ejemplo 3.

Tenga en cuenta que a pesar de que el ejemplo es acerca de las claves de ser enteros o cadenas, los valores asignados en el ejemplo son también tanto ents y cadenas, lo que demuestra que es posible almacenar tipos heterogéneos.

Tenga en cuenta que, en el caso de las teclas de tipo diferente, hay un moldeado automático involucrado, por lo que puede tener resultados sorprendentes en el caso donde, por ejemplo, una cadena contiene una representación decimal válida.

+1

Tiene razón, pero la pregunta era sobre el almacenamiento de diferentes tipos de valores, no de claves. No estoy seguro de por qué esto fue downvoted sin embargo. – phant0m

+0

@ phant0m - De hecho me perdí el título del ejemplo por completo, estaba mirando el lado derecho de ese ejemplo. Respuesta aclarada, gracias. –

2

En las matrices de PHP ni siquiera hay matrices, son hash-tables ordenadas.

+0

Las tablas hash bien ordenadas son matrices asociativas, por lo que las matrices PHP _ son_ matrices. No sé qué definición de matriz tiene en mente, pero la limitación de que las matrices solo pueden contener elementos del mismo tipo es una limitación de lenguaje, no conceptual. – yannis

+3

@YannisRizos Le sugiero que lea esta publicación para ver por qué las personas no consideran que las matrices php son matrices reales http://technosophos.com/content/php-arrays-are-not-arrays No solo se trata del tipo, sino que también sobre el pedido (inexistente en PHP) –

+0

¿No es una matriz una estructura de datos, donde todos los valores son del mismo tamaño y se ordenan uno tras otro en la memoria? Lo que estás refiriendo me suena como un diccionario/mapa. Lo único que sé, que las matrices asociativas tienen en común con las matrices reales es una parte del nombre. –

0

Puede almacenar todo lo que desee en una matriz.

¿Se tratará el número/entero como una cadena en dicho tipo de matriz en PHP?

No sobre almacenándolo. Sin embargo, cuando usa un valor como tal, PHP lo convertirá en. El uso de un valor determina su interpretación. (Atención, la clave se convierte al almacenar, sin embargo, si se considera numérica)

1

No va a poner aceite en el fuego de las matrices PHP no hay matrices aquí ... Pero sí, puede poner diferentes tipos de variables (string, int, ...) juntos en una cosa PHP llamada Array.

Cuestiones relacionadas