1
resposta

Dúvidas com relação a sobrecarga.

Estou com dúvida em relação ao método usado pelo instrutor para realizar sobrecarga de construtores em php. Pelo que vi o php não aceita sobrecarga da maneira convencional que outras linguagens como java e c# aceitam e a técnica usada pelo instrutor me pareceu mais uma maneira de deixar o valor da propriedade default, se não me engano no ruby existe isso também de não poder utilizar sobrecarga em métodos construtores mais podemos deixar um valor default,isso se não me engano. Gostaria de saber se existem outros métodos ou só este que o instrutor usou de exemplo?

1 resposta

Rafael, boa tarde!

Atualmente, nós conseguimos definir um valor default para um parâmetro de uma função, ou seja, o exemplo abaixo (do instrutor)

abstract class Funcionario{

    public $nome;
    public $cpf;
    protected $salario;
    protected $piso = 1056;

    public function __construct($cpf, $salario)
    {
        if(func_num_args() ==2){
            $this->cpf = $cpf;
            $this->salario = $salario;
        } else{
            $this->construtor2($cpf);
        }
    }

    public function construtor2($cpf)
    {
        $this->cpf = $cpf;
        $this->salario = self:: $piso;
    }

Poderia ser alterado para

<?php


abstract class Funcionario
{

    public $nome;
    public $cpf;
    protected $salario;
    protected $piso = 1056;

    public function __construct($cpf, $salario = 1056)
    {
        $this->cpf = $cpf;
        $this->salario = $salario;
    }
}

Espero ter ajudado e bons estudos!