Classes em php (dúvida)

Sou iniciante em php e gostaria de saber se o que eu fiz na classe Estoque é correto ( function Estoque (Produto;$quant)") e se é necessário o “extends Produto” nesse caso ?

class Produto 
{
    $nomeP;
    $descricao; 
    $tipo; 
    $valor;
    function Produto($nomeP, $descricao, $tipo, $valor) { 
        this-> $nomeP = $nomeP;
        this-> $descricao =$descricao;
        this-> $tipo = $tipo; 
        this-> $valor = $valor;
    }
    function mudaValor($mValor){
          this-> $valor = $mValor;
     }
}

class Estoque 
{
    $quant;
    function Estoque (Produto;$quant){
         this-> Produto = Produto;
         this-> $quant = $quant;
    }
    function adicionar($n){
        this->$quant += $n;
    }
    function remover($n){
        if ((this->$quant)<($n)) {
            this->$quant =0;
            echo "So foi possivel remover $quant . Estoque vazio.";
        } else {
             this->$quant-$n;
        }
    }
}

$sofa = new Produto ("Sofá","É um sofá","Sala",900);
$estoque_sofá = new Estoque ($sofa,5);

Tem que ser parâmetros, iniciando com minusculo e cifrão e separado por virgula. Não é errado mas, tem que ver o que está fazendo e o porque está fazendo assim, basicamente a função estoque($produto, $quant) deveria ser assim:

function estoque ($produto, $quant)
{
     this->Produto = $produto;
     this->quant = $quant;
}

Nos outros métodos parecem estar corretos, não sei porque não seguiu a mesma nomenclatura

1 curtida

Obrg pela ajuda. Mas só tem “$produto” na chamada da função, no “this->Produto = produto” não precisa colocar o “$” ?

Precisa sim fiz a edição.

1 curtida

Eu estava olhando bem a suas classes tem erros graves, eu não sei qual o objetivo, mas, tem muitos problemas.