2
respostas

ja fiz o codigo ja copiei e so da erro

Parse error: syntax error, unexpected ';', expecting '{' in C:\wamp2\www\alura\aula5_array_associativo\autoload.php on line 4 Call Stack

Time Memory Function Location

1 0.0003 136832 {main}( ) ..\index.php:0


<?php

spl_autoload_register(
    function (string $namespaceClasse) void: {
        $caminho = "/src";
        $diretorio_classe = str_replace("\\", DIRECTORY_SEPARATOR, $namespaceClasse);
        @include_once getcwd() . $caminho . DIRECTORY_SEPARATOR . "{$diretorio_classe}.php";
    }
);
<?php declare (strict_types=1);

namespace = Alura;

class ArrayUtils
{

    public static function remover (int $elemento, array, $array)
    {
    $posicao = array_search($elemento, $array, true);
    if (is_int($posicao)) {
       unset($array[$posicao])
    } else {
       echo "Não foi encontrado no array";
    }
}
 public static function encontrarPessoasComSaldoMaior(int      $saldo,array $array): array{
      $correntistasComSaldoMaior = array();
      foreach ($array as $chave => valor) {
        if($valor > $saldo){
           $correntistasComSaldoMaior[] = chave;
    }
  }
   return $correntistasComSaldoMaior;
}
<?php

namespace Alura;

include 'autoload.php';
header("Content-type: text/html; charset=utf-8"); 



$correntistas = [
  "Giovanni",
  "João",
  "Maria",
  "Luis",
  "Luisa",
  "Rafael"
];

$saldos = [
   2500,
   3000,
   4400,
   1000,
   8700,
   9000
];

  //associar corentistas ao saldo
  $relacionados = array_combine ($correntistas, $saldos);
  var_dump($relacionados);


  //array associativo de outra maneira
  //$array_associativo = [
  // "Giovanni" => 2500,
  // "João" => 3000,
  // "maria" => 4400
//];



  if (array_key_exists("Maria", $relacionados)) {
    echo "O saldo do Joao é: {$relacionados["Maria"]}";
 } else {
    echo "Não foi encontrado";
  }


$maiores = ArrayUtils::encontrarPessoasComSaldoMaior(3000, $relacionados);

echo "<pre>";
var_dump($maiores);
echo  "</pre>";

?>
2 respostas

Bismarque, boa tarde!

Tente retirar o @ antes do include_once

Espero ter ajudado e bons estudos!

Oi Bismarque, a sintaxe tá incorreta, na parte:

<?php

spl_autoload_register(
    function (string $namespaceClasse) void: {
        $caminho = "/src";
        $diretorio_classe = str_replace("\\", DIRECTORY_SEPARATOR, $namespaceClasse);
        @include_once getcwd() . $caminho . DIRECTORY_SEPARATOR . "{$diretorio_classe}.php";
    }
);

O retorno dá função tá void: e os : devem vir do lado esquerdo do tipo, fica assim:

<?php

spl_autoload_register(
    function (string $namespaceClasse): void {
        $caminho = "/src";
        $diretorio_classe = str_replace("\\", DIRECTORY_SEPARATOR, $namespaceClasse);
        @include_once getcwd() . $caminho . DIRECTORY_SEPARATOR . "{$diretorio_classe}.php";
    }
);