Boa tarde, fiz a aula de autoload, não funcionou o código do jeito que deveria. A função remover parece não esta executando, não retorna o ultimo var_dump.
ArrayUtils.php
<?php declare(strict_types=1);
namespace Alura;
class ArrayUtils
{
public static function remover($elemento, array &$array) // (&) passagem por referencia. não cria uma cópia do array, utilizar o mesmo array.
{
$posicao = array_search($elemento, $array, true);
//o true compara o conteudo e o tipo. // devolva o numero da posicao que o elemento se encontra na array;
if(is_int($posicao)) { // is_int aceita o numero como um inteiro. se for int então retorna true.
unset($array[$posicao]);
}else{
echo "Não foi encontrado no array";
}
}
}
autoload.php
<?php
spl_autoload_register(
function(string $namespaceClasse): void {
$caminho = "/src";
$diretorio_classe = str_replace("//",DIRECTOR_SEPARATOR, $namespaceClasse);
include_once getcwd().$caminho.DIRECTORY_SEPARATOR."{$diretorio_classe}.php";
}
);
E index.php
<?php declare(strict_types=1); // não faz a conversão de int pra string. (Dando erro na execução caso for int e foi definido string)
namespace Alura;
require 'autoload.php';
$correntistas_e_compras = [
"Giovanni",
"João",
12,
"Maria",
25,
"Luis",
"Luísa",
"12"
];
echo "<pre>";
var_dump($correntistas_e_compras);
ArrayUtils::remover(12, $correntistas_e_compras);
var_dump($correntistas_e_compras);
echo "</pre>";