![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
08/07/2006, 14:31
|
![Avatar de ArrauKano](http://static.forosdelweb.com/customavatars/avatar27294_6.gif) | | | Fecha de Ingreso: noviembre-2002 Ubicación: Santiago
Mensajes: 664
Antigüedad: 22 años, 3 meses Puntos: 4 | |
aer, no tengo a mano ningun link q hable SOLO de arrays de PHP, pero si puedo darte mi experiencia acerca de arreglos/listas/matrices/vectores o como sea su homologo en otros lenguajes:
- en C/C++/JAVA los arreglos son te tamaño estatico, osea no puedes quitar o agregar elementos, aunq esto o quiere decir q no puedas conciderar como "nulo" alguno de los elementos. Las claves son numericas partiendo desde 0. El contenido debe ser del mismo tipo para cada elemento del arreglo, y se define al minuto de crear el arreglo.
- En el caso especifico de Java, los arreglos son objetos, y como tal, soporta propiedades y metodos.
- En los lenguajes orientados a objetos, cuando se declara un arreglo tipo objeto, entonces todos los elementos deben ser instancias de la misma clase, pero todas las instancias son independientes, por dentro cada objeto se trata de manarera diferente (como si estuvieran instanciados en variables distintas).
- En el caso de lenguajes funcionales como Scheme, se usan "listas" donde cada elemento puede ser de cualquier tipo primitivo. No tienen claves, pero si se puede determinar la posicion de un elemento con funcines recursivas que extraen los elementos uno por uno, para comprobar su valor, posicion, o lo que el programa requiera.
- En el caso de PHP:
Los arreglos son dinámicos, es decir, puedes eliminar o agregar libremente los elementos.
Si agregas un elemento al arreglo sin establecer su clave, entonces PHP le asigna una clave numerica automaticamente, el criterio es sumarle 1 a la clave numerica de mayor valor.
Las claves tambien pueden ser asociativas, es decir, strings en vez de numeros enteros.
El formato de las claves de un arreglos (asociativo, numerico o mezcla de ambos) no implica que al agregar un elemento estará ordenado, siempre se agregan elementos nuevos al final, por lo que un arreglo como:
array (
3=> "elemento1",
"cosa" => "elemento2"
5=> "elemento3");
tendrá precisamente ese orden, las claves no importan. sin embargo hay funciones que pueden ordenar el arreglo y dejarlo ordenado por calve o valor.
Muchas veces hay que tener cuidado al conciderar que un array en PHP tiene solo claves numericas, porque al querer recorrerlo con un ciclo como for, puedes tener problemas al encontrar una clave numerica. En esos casos conviene recorrer los arreglos con foreach, que recorre el arreglo elemento por elemento devolviendo su valor o un par clave-valor.
En cierto modo la flexibilidad de los arreglos en PHP es un arma de doble filo, a veces permite que el codigo sea + legible, pero se puede terminar programando bastante mal, en mi experiencia personal, hice hace mucho tiempo un sistema para manejar plantillas html, y deje toda la estructura interna de la clase con arreglos, y me quedo incomprensible, tanto que ahora que retome el codigo, apenas logro entender algunas cosas. Ahora lo quiero modelar orientado a objetos para que me quede + comodo
Eso sería mi humilde aporte. |