Autor Tópico: PHP - Coleção de Objetos  (Lida 2144 vezes)

Offline Zeox

  • Usuário Ubuntu
  • *
  • Mensagens: 51
  • Não sei o que digitar
    • Ver perfil
PHP - Coleção de Objetos
« Online: 30 de MAR?O de 2012, 21:38 »
Boas noites povo, estou estudando PHP e caçando daqui, caçando dali não achei os métodos para fazer coleção de objetos(existe?), sendo assim, resolvi arregaçar as mangas e fazer uma classe para isso, segue o código. (ps: não sei ainda se contem erros, fiz poucos testes)

Código: [Selecionar]
<?php

/*
 @author Ricardo
 */
class Colecao {
    public 
$objeto = array();
    public 
$j=0;
    
    
    public function 
addObj($n){
        
$this->objeto[$this->j++] = $n;

    }
   
   public function 
getPrimeiroObj(){
       return 
$this->objeto[0];
   }
   
   public function 
getUltimoObj(){
       return 
$this->objeto[$this->j];
   }
   public function 
getEscolhaObj($n){
       if(
$this->j>$n)
           return 
$this->objeto[$n];
       else return 
false;

   }
   public function 
getSize(){
       return 
$this->j;
   }   
   
    public function 
removerLista(){
        
$this->objeto=null;
        
$this->j=0;
   }
   
   public function 
removerPrimeiroObj(){
       if(
$this->j==1){
           
self::removerLista();
       }
       else{
           for(
$i=0;$i<self::getSize()-1;$i++){
               
$prox=$i+1;
               
$this->objeto[$i] = $this->objeto[$prox];

            }
            
$this->objeto[$prox]=null;
            
$this->j--;
       }

   }    
   
   public function 
removerUltimoObj(){
       
$this->objeto[$this->j]=null;
       --
$this->j;
   }
   
   public function 
removerObjEcolhido($n){
        if(
self::vazia());
        else if(
$this->j-1==0)
            
self::removerLista();
       else{
           for(
$i=$n;$i<self::getSize()-1;$i++){
               
$prox=$i+1;
               
$this->objeto[$i] = $this->objeto[$prox];

            }
            
$this->objeto[$i]=null;
            
$this->j--;
       }
   }
   
      public function 
vazia(){
       if(
$this->j==0)
           return 
true;
       else
           return 
false;
   }
   
   public function 
ordena(){
       
sort($this->objeto);
   }
                
}

?>

Offline GiovanniVM

  • Usuário Ubuntu
  • *
  • Mensagens: 10
  • Unidos por só uma causa...
    • Ver perfil
Re: PHP - Coleção de Objetos
« Resposta #1 Online: 30 de MAR?O de 2012, 22:05 »
Existe.

Já tentou array:

<?
...

$caixa = new Caixa();
$item = new Item();

for($i = 0; $i < 5; $i++){
$caixa->addItem($item);
}

...
?>

e dentro da classe Caixa:

<?
...

function addItem($item){
$this->item[] = $item;
}

...
?>
--> Giovanni Vi. Mor. <--

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: PHP - Coleção de Objetos
« Resposta #2 Online: 31 de MAR?O de 2012, 08:25 »
Sem um contexto fica difícil de saber, mas você feriu o principio de encapsulamento. Também não vejo "j" como uma variável de classe (atributo).

Offline gaseabra

  • Usuário Ubuntu
  • *
  • Mensagens: 44
    • Ver perfil
Re: PHP - Coleção de Objetos
« Resposta #3 Online: 30 de Abril de 2012, 11:16 »
Pessoal, procurem um fórum específico para PHP. Aqui é lugar de falar de Ubuntu Linux.
Linux user #545235 / Distros: Zorin OS 5.2, Linux Mint 12.