Avatar ·

Por que este código PHP não exibe as letras de A a Z?

Olá a todos! Sou novo em PHP e estou tentando exibir todas as letras do alfabeto inglês de A a Z usando um loop. Escrevi o seguinte código: ```php ``` Mas ele não exibe apenas A-Z, e sim uma sequência infinita: A B C D E F ... AA AB AC ... e assim por diante, até ocorrer um erro de tempo de execução. Por que isso acontece? Afinal, a condição diz claramente: $i <= 'Z'. Eu esperava que o loop parasse na letra Z. Mas ele continua funcionando. Expliquem, por favor, qual é o problema? Como organizar corretamente a iteração pelas letras de A a Z? Desde já, obrigado pela ajuda! <<>>

Por que o loop não para em 'Z'?

O problema está em como o PHP lida com incrementos de strings. Quando você escreve $i++ para uma string, o PHP usa o incremento alfabético (perl-style), não o numérico. Isso significa que depois de 'Z' vem 'AA', depois de 'AZ' vem 'BA' e assim por diante. A condição $i <= 'Z' na comparação de strings funciona