I'm studying PHP in PHP and I came across an example I did not understand:
The part of the code I did not understand is because the $produtos
attribute is being
past / calling the print () method in $produto->imprimir()
and tbm $usuario->imprimir();
The example is to add in the variable $ r the output of this two sections.
How is the attribute calling the method and how does this call work?
follow the code:
<?php
class Compra {
public $id, $produtos, $usuario;
public function cadastrar(array $produtos, Usuario $usuario)
{
$this->id = rand(0, 1000);
$this->produtos = $produtos;
$this->usuario = $usuario;
}
public function imprimir()
{
$r = "Compra id" . $this->id . "<hr>";
$r .= "Produtos" . "<br>"; #ESSA PARTE
foreach ($this->produtos as $produto) {
$r .= $produto->imprimir(); #ESSA PARTE
}
$r .= "<hr>";
$r .= "Usuario" . $this->usuario->imprimir(); #ESSA PARTE
return $r;
}
}