o erro do titulo foi aprensentado e não consegui encontrar o erro.
correntistas.php
<?php
namespace alura;
require 'autoload.php';
$correntistasecompras = ["giovanni", "joao", 12, "Maria", 25, "Luis", "Luiza", "12"];
echo "<pre>";
var_dump ($correntistasecompras);
echo "<p></p>";
arrayutils::remover("joao", $correntistasecompras);
var_dump($correntistasecompras);
echo "</pre>";
autoload.php
<?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";
}
);
?>
e arrayutils.php
<?php declare(strict_types=1); //DESABILITA A CONVERSÃO AUTOMÁTICA DE TIPOS DE ARGUMENTOS E RETORNO DE FUNÇÕES.
namespace alura;
class arrayutils {
public static function remover(string $elemento, array &$array){
//o terceiro argumento (true) do array_search faz com que ele ative a busca estrita e faz com que ele ignore o numero int(12) e exclua somente a strig "12"
$posicao = array_search($elemento, $array, true);
//caso a $posicao seja valida ou seja diferente de "false", ele executará a exclusao.
//a funçao is_int() garante que caso você passe a posição do array ao invés do valor ele também será excluido.
if(is_int($posicao)){
unset($array[$posicao]);
echo var_dump($array);
} else{echo "elemento não encontrado no array <br>";}
}
}
?>