Questão nº 60
Questão de A definir · FGV DPE-RS 2023 (nº 60)
Uma forma de criar dicionários no PHP é com a utilização de arrays associativos, em que o uso de índices textuais permite a definição de chaves associadas aos valores das posições indexadas.
O código utilizado para imprimir os valores como itens de uma lista HTML é:
- A
for($key = $_START; $key <= $_END; $key++)
echo("<li>".$key." :: ".$values[$key]."</li>"); - B
for($item in $values)
echo("<li>".$item->key." :: ".$item->value."</li>"); - C
foreach($values as $key=>$value)
echo("<li> $key :: $value </li>");(alternativa correta) - D
for $item in range($_START,$_END):
echo("<li>".$item->key." :: ".$item->value."</li>"); - E
foreach $key=>$value in range($_START,$_END):
echo("<li> $key :: $value </li>");
Resposta comentada
Gabarito Alternativa C
Um array associativo no PHP é como um dicionário, onde cada item tem um nome (a chave, que é um texto) em vez de um número, e um valor associado a esse nome. Para percorrer esses itens e usar tanto o nome quanto o valor, usamos uma estrutura de repetição específica.
- (A) Incorreta: Este é um loop
fortradicional, que é usado para arrays com índices numéricos sequenciais. Ele não funciona para arrays associativos, pois suas chaves são textuais e não seguem uma sequência numérica. - (B) Incorreta: A sintaxe
for($item in $values)não é válida em PHP. Ela se assemelha a sintaxes de outras linguagens (como JavaScript ou Python). Mesmo que fosse,$itemconteria o valor, não um objeto com propriedadeskeyevalue. Armadilha: A banca tenta confundir com sintaxes de outras linguagens, que são comuns para iniciantes que podem estar aprendendo mais de uma linguagem simultaneamente. Em PHP, você não acessa a chave e o valor de um array associativo como propriedades de um objeto$item. - (C) Correta: O
foreaché a estrutura de repetição ideal em PHP para percorrer arrays (sejam eles associativos ou indexados numericamente). A sintaxeforeach($values as $key=>$value)permite acessar diretamente a chave ($key) e o valor ($value) de cada elemento do array$valuesem cada iteração, tornando-o perfeito para a tarefa. - (D) Incorreta: A sintaxe
for $item in range(...)é de Python, não de PHP. O PHP tem a funçãorange(), mas a estrutura do loop está incorreta para a linguagem. - (E) Incorreta: A sintaxe
foreach ... in ...é inválida em PHP. Além disso,range($_START,$_END)cria um array de números, e não o array associativo original que se deseja iterar.
Fonte: FGV DPE-RS 2023 Técnico - Apoio Especializado (Programador) (Caderno Tipo 1). Reproduzida para fins de estudo.