Eu tenho a seguinte classe:
<?php
class CalculaMedia
{
public function calculaMedia(array $notas)
{
if(sizeof($notas) > 0){
$somaDasNotas = 0;
for ($n = 0; $n < sizeof($notas);$n++)
{
$somaDasNotas += $notas[$n];
}
$media = $somaDasNotas/sizeof($notas);
return $media;
}
return null;
}
}
E o seguinte código executando a classe:
<?php
require_once 'CalculaMedia.php';
$notas = [7, 9.5, 7, 8.6, 7, 9, 10, 4];
$calculadora = new calculaMedia();
echo "a media é: ". $calculadora->calculaMedia($notas);
Mas quando eu executo o código tanto no cmd quanto no servidor ele responde o seguinte erro:
"Fatal error: Uncaught ArgumentCountError: Too few arguments to function CalculaMedia::calculaMedia(), 0 passed"
Resolvi reescrever o código, o método ficou assim:
<?php
class Calculadora
{
public function calculaMedia(array $valores): ?float
{
$quantidadeDeValores = sizeof($valores);
if($quantidadeDeValores > 0){
$somaDosValores = 0;
for($n = 0; $n < $somaDosValores; $n++){
$somaDosValores += $valores[$n];
}
return $somaDosValores/$quantidadeDeValores;
}
return null;
}
}
e o Código que o executa ficou assim:
<?php
require_once 'CalculadoraDeMedia.php';
$notas = [7, 9.5, 7, 8.6, 7, 9, 10, 4];
$calculadora = new Calculadora();
echo "a media é: ". $calculadora->calculaMedia($notas);
Dessa vez eu tenho a seguinte resposta:
"a media é: 0"
Aparentemente o problema se mantêm no entre o array e o método, mas não consegui descobrir qual é.
Eu estou usando a versão 7.3 do PHP.