O código foi feito de acordo com o curso PHP Avançado aula 5. Segundo o vídeo, o código é funcional da forma que está, porém me retorna o seguinte erro:
Erro fatal : Uncaught ArgumentCountError: Poucos argumentos para classes de função \ abstratas \ Funcionario :: __ construct (), 1 passado em C: \ xampp \ htdocs \ phpAvancado2 \ index.php na linha 13 e exatamente 2 esperado em C: \ xampp \ htdocs \ phpAvancado2 \ classes \ abstratas \ Funcionario.php: 15 Rastreio de pilha: # 0 C: \ xampp \ htdocs \ phpAvancado2 \ index.php (13): classes \ abstratas \ Funcionario -> __ construct ('46402648876') # 1 { main} lançado em C: \ xampp \ htdocs \ phpAvancado2 \ classes \ abstratas \ Funcionario.php na linha 15
<?php
ini_set("display_errors",1);
error_reporting(-1);
require_once "autoload.php";
use classes\funcionarios\Diretor;
use classes\funcionarios\Designer;
use classes\sistemaInterno\GerenciadorBonificacao;
$diretor = new Diretor("192.168.254-15", 7000.00);
$diretor->senha = "123456";
$designer = new Designer("464.026.488-76");
$gerenciador = new GerenciadorBonificacao();
$gerenciador->AutentiqueAqui($diretor, "123456");
$gerenciador->registrar($diretor);
var_dump($gerenciador->getTotalBonificacoes());
$gerenciador->registrar($designer);
?>'<br/>'<?php
var_dump($diretor);
?>'<br/>'<?php
echo "bonificação diretor: R$".$diretor->getBonificacao();
?>'<br/>'<?php
?>'<br/>'<?php
var_dump($designer);
?>'<br/>'<?php
echo "bonificação designer: R$".$designer->getBonificacao();
?>'<br/>'<?php
?>'<br/>'<?php
$diretor->aumentarSalario();
var_dump($diretor);
?>'<br/>'<?php
?>'<br/>'<?php
$designer->aumentarSalario();
var_dump($designer);
?>'<br/>'<?php
?>
<?php
namespace classes\abstratas;
abstract class Funcionario{
public $nome;
public $cpf;
protected $salario;
protected static $piso = 1056.00;
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;
}
abstract public function getBonificacao();
final public function aumentarSalario(){
$this->salario *= 1.3;
}
}
?>