Add objects to the array

Asked

Viewed 1,918 times

3

I got the dao down:

<?php
class CarrinhoDao {
  private $carrinhoDao = Array();

  public function __construct() {

  }

  public function insereProduto($_produto) {
 $carrinhoDao[] = $_produto;

    print "<pre>";
    print_r($carrinhoDao[]);
    print "</pre>"; 
  }

  public function getCarrinho () {
 return $this->carrinhoDao;
  }
}
?>

It inserts Product Class objects into the $cartDao array. This is working correctly because at the end of the code shooting below:

....
$produto1 = new Produtos(10, 2, "TesteA", "pmg", 124, 13.40, "n", "", "n");
$produto2 = new Produtos(11, 1, "TesteB", "pmg", 12, 13, "n", "", "n");
$produto3 = new Produtos(12, 2, "TesteC", "pmg", 1, 13.04, "n", "", "n");

$produto1->setIdProdutos(1);
$produto2->setIdProdutos(2);
$produto3->setIdProdutos(3);


$CarrinhoDao->insereProduto($produto1);
$CarrinhoDao->insereProduto($produto2);
$CarrinhoDao->insereProduto($produto3);
....

The output of the print_r is:

Array
(
    [0] => Produtos Object
        (
            [idProdutos:Produtos:private] => 
            [codigoProdutos:Produtos:private] => 10
            [tipo:Produtos:private] => 2
            [nome:Produtos:private] => TesteA
            [tamanho:Produtos:private] => pmg
            [estoque:Produtos:private] => 124
            [preco:Produtos:private] => 13.4
            [promo:Produtos:private] => n
            [imagem:Produtos:private] => 
            [reservado:Produtos:private] => n
        )

)
Array
(
    [0] => Produtos Object
        (
            [idProdutos:Produtos:private] => 
            [codigoProdutos:Produtos:private] => 11
            [tipo:Produtos:private] => 1
            [nome:Produtos:private] => TesteB
            [tamanho:Produtos:private] => pmg
            [estoque:Produtos:private] => 12
            [preco:Produtos:private] => 13
            [promo:Produtos:private] => n
            [imagem:Produtos:private] => 
            [reservado:Produtos:private] => n
        )

)
Array
(
    [0] => Produtos Object
        (
            [idProdutos:Produtos:private] => 
            [codigoProdutos:Produtos:private] => 12
            [tipo:Produtos:private] => 2
            [nome:Produtos:private] => TesteC
            [tamanho:Produtos:private] => pmg
            [estoque:Produtos:private] => 1
            [preco:Produtos:private] => 13.04
            [promo:Produtos:private] => n
            [imagem:Produtos:private] => 
            [reservado:Produtos:private] => n
        )

)

But the output of the function

...
  public function getCarrinho () {
 return $this->carrinhoDao;
  }
...

is an empty array:

Array
(
)

How to solve this?

1 answer

3


That’s because in your job insereProduto you are not using the class array, it should be like this:

$this->carrinhoDao[] = $_produto;

Or with an index depending on the id:

public function insereProduto($_produto) 
{
    $this->carrinhoDao[$_produto->getID()] = $_produto;
}
  • 2

    That’s right. Just me who is extremely seasick about it. rsrs, thank you, is full head!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.