¿Cuáles son los beneficios de usar SPL ArrayObject, ArrayIterator, RecursIvearRayIterator en lugar de matrices regulares?

StackOverflow https://stackoverflow.com/questions/4072927

  •  28-09-2019
  •  | 
  •  

Pregunta

Comencé a aprender PHP SPL de ArrayIterators y me gustaría saber cuáles son los beneficios de usar SPL ArrayObject, ArrayIterator, RecursIvearRayiterator en lugar de matrices regulares.

A) He oído que los bucles que usan iteradores SPL reducirán el uso de la memoria (pero ¿por qué?). Realmente no sé creer esto o no porque no entiendo cómo puede reducir el uso de la memoria.

b) Hablando de recursivoRearrayIterator podemos decir que a veces podría guardar algunas líneas de código (estamos usando una construcción de una foreach en lugar de 2+ (depende de la dimensión de la matriz)).

Probablemente, mis preguntas podrían ser muy fáciles para alguien, pero hay muy poca información/documentación sobre SPL.

Gracias

¿Fue útil?

Solución

El beneficio principal que está analizando el acceso eficiente de datos principalmente en el área de legibilidad. De esta manera, puede usar objeto como una matriz en un foreach, por lo que una interacción más cercana con PHP.

a) La forma en que reduce el uso de la memoria es no hacer una copia de la matriz, pero si se hace correctamente en el motor, entonces debería ser una nueva referencia hasta que la matriz se modifique, entonces realmente se copia.

b) esencialmente

Un buen ejemplo de esto sería el Simple extensión. El objeto PHP/XML con el que está interactuando también actúa como una matriz, lo que hace que sea eficiente de usar porque puede obtener o acceder a uno de los elementos dentro de la lista. No tiene que tomar una matriz del objeto y luego iterar y hacer algo más si desea el nombre de la etiqueta o un atributo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top