• Artigos
  • Projetos
  • Lista
  • Docs
  • Enviar Artigo
  • ?

Percorrendo arrays com SPL e ArrayIterator

06/07/2009  Pablo DallOglio 

Neste artigo iremos estudar como percorrer vetores por meio da biblioteca SPL e a classe ArrayIterator.

A Biblioteca SPL (Standard PHP Library) é um conjunto de classes e interfaces em PHP que implementam algumas formas comuns de acessos à dados. São projetadas para manipular estruturas complexas como arrays, xml, diretórios, consultas ao banco de dados, dentre outros.

Dentro da biblioteca SPL, a classe ArrayObject permite manipular vetores por meio de uma interface totalmente orientada a objetos. O último artigo que escrevemos demonstrou como manipular vetores utilizando a classe ArrayObject. Neste artigo vamos mostrar como poderemos iterar vetores de forma orientada a objetos. A classe ArrayObject é utilizada somente para manipular e acessar vetores de forma orientada a objetos, para percorrê-los, é necessário utilizar a classe ArrayIterator.

Pela forma tradicional, utilizamos da seguinte maneira:

<?php

// cria o vetor
$array = array('laranja', 'tangerina', 'tomate', 'alface', 'pepino', 'melancia', 'banana', 'abacaxi');

// percorre o vetor
foreach($array as $key=>$value)
{
    echo 
$value."<br>\
"
;
}
?>



Utilizando a SPL, classe ArrayIterator poderá ser utilizada para percorrer vetores de forma orientada a objetos. As diferênças são muito pequenas e implícitas. Enquanto o modo tradicional percorre o vetor alocando o mesmo inteiro na memória, o ArrayIterator carrega na memória apenas o elemento corrente. Esta forma de utilização pode ser muito útil quando estamos trabalhando com vetores muito grandes, contendo estruturas aninhadas de objetos.
Muitos dos métodos da classe ArrayObject, como offsetGet() e offsetSet() também estão disponíveis na classe ArrayIterator.

<?php
// cria o vetor
$array = array('laranja', 'tangerina', 'tomate', 'alface', 'pepino', 'melancia', 'banana', 'abacaxi');

$arrayObj = new ArrayIterator($array);
try
{
    
// percorre o ArrayIterator
    
foreach($arrayObj as $key=>$value)
    {
        echo 
$value."<br>\
"
;
    }

    
// reposiciona o ponteiro interno
    
$arrayObj->rewind();

    
// exibe o elemento atual
    
echo $arrayObj->current();
}
catch (
Exception $e)
{
    echo 
$e->getMessage();
}
?>



Comentários

Adicionar Comentário
 login  
 Senha  
 Título  
 Comentário  
  Efetuar Cadastro
  Esqueci a Senha

Livros




    Outros

    Busque conteúdo no site
    Participe de nosso grupo no google

    [Página do grupo]  [Arquivo do grupo]

    Google

    Parceiros

 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS RSS allposts