FC ConcursosFC Concursos

Questão FC373371

Considere a função em PHP abaixo que gera uma string aleatória formada por caracteres restritos a letras maiúsculas e números. O tamanho da string é passado como parâmetro e a stri

Desenvolvimento Web

FCC · 2023

Considere a função em PHP abaixo que gera uma string aleatória formada por caracteres restritos a letras maiúsculas e números. O tamanho da string é passado como parâmetro e a string resultante tem essa quantidade de caracteres.

 

function geraStringAleatoria ($tamanho) {

$caracteres - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

$stringAleatoria = '';

 

for ($i= 0; $i < Stamanho; $i++) {

 

...I...

 

}

 

return $stringaleatoria;

 

}

 

Para que esta função, posteriormente, seja incluída em um código e testada em condições ideais, a lacuna I deve ser corretamente preenchida com:

  1. $stringAleatoria += $caracteres [random (1, strlen($caracteres))];
  2. $stringAleatoria .= $caracteres [random (0, strlen($caracteres) -1)];
  3. $stringAleatoria = $caracteres (rand (0, strlen($caracteres) )];
  4. $stringAleatoria = $caracteres [srand (1, strlength ($caracteres-1))];  
  5. $atringAleatoria =. $caracteres (rand (0, strlen($caracteres) - 1)];
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A instrução $stringAleatoria .= $caracteres[random(0, strlen($caracteres) - 1)]; faz duas coisas essenciais: seleciona um caractere aleatório em $caracteres e o anexa à variável acumuladora.

O índice usado é gerado por random(0, strlen($caracteres) - 1), que devolve um inteiro entre \(0\) e \(strlen($caracteres)-1\). O termo -1 é necessário porque os índices de string em PHP vão de \(0\) até o tamanho menos um; assim evitamos acessar posição fora do intervalo.

O operador .= concatena o caractere selecionado ao fim de $stringAleatoria, e repetindo essa linha dentro do laço for por $tamanho iterações resulta em uma string final com exatamente a quantidade desejada de caracteres.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo