Olá Marcos, como vai?
O que você está observando é, na verdade, o comportamento esperado dessa função. Quando você passa uma string vazia como segundo parâmetro, a função sempre retornará true. Isso acontece porque qualquer string começa com uma string vazia, por definição.
Por exemplo, considere o seguinte código:
$url = 'https://alura.com.br';
var_dump(str_starts_with($url, '')); // Isso retornará true
Neste caso, a função está verificando se a string $url começa com uma string vazia, o que é verdade para qualquer string.
Se o seu objetivo é verificar se a URL começa com uma parte específica, como "https", você deve garantir que o segundo parâmetro não seja uma string vazia. Assim, a função funcionará conforme o esperado:
$url = 'https://alura.com.br';
var_dump(str_starts_with($url, 'https')); // Isso retornará true
Espero que isso esclareça a questão e ajude a resolver o problema que você está enfrentando.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.