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 ".$key." :: ".$values[$key]." ");
Errada, porque usa um for com índices sequenciais e pressupõe posições numéricas, o que não é o padrão para percorrer um array associativo.
- B)for($item in $values) echo("".$item->key." :: ".$item->value." ");
Errada, porque a sintaxe for(... in ...) e o uso de ->key e ->value não correspondem ao modo de percorrer arrays em PHP.
- C)foreach($values as $key=>$value) echo(" $key :: $value ");
Certa, porque foreach permite percorrer um array associativo capturando a chave em $key e o valor em $value.
- D)for $item in range($_START,$_END): echo("".$item->key." :: ".$item->value." ");
Errada, porque a sintaxe apresentada não é a do PHP e ainda trata os dados como se fossem objetos retornados por range.
- E)foreach $key=>$value in range($_START,$_END): echo(" $key :: $value ");
Errada, porque a construção apresentada não existe assim em PHP e range gera uma sequência numérica, não um array associativo de chave e valor.
Gabarito: C
Em PHP, dicionários normalmente são representados por arrays associativos, isto é, arrays em que a chave pode ser textual e não apenas numérica. Na prática, isso permite guardar pares do tipo "chave -> valor" e percorrer tudo sem ficar adivinhando índices. Quando a ideia é exibir esses dados em HTML, o caminho mais natural é usar um laço que percorra chave e valor ao mesmo tempo. O ponto central da questão é justamente esse: para montar itens de uma lista HTML com as chaves e os valores de um array associativo, o PHP usa muito bem o foreach. Ele percorre cada elemento do array e permite capturar a chave em uma variável e o valor em outra, exatamente no formato necessário para imprimir algo como chave :: valor . Por isso, a alternativa C está correta: foreach($values as $key=>$value) echo(" $key :: $value ");. Aqui, $key recebe a chave textual ou numérica do array e $value recebe o conteúdo armazenado naquela posição. É o jeito clássico, limpo e direto de trabalhar com arrays associativos no PHP. As outras opções tentam misturar sintaxe de outras linguagens ou usam estruturas que não batem com a lógica do PHP. Em prova, a banca costuma cobrar justamente essa diferença entre percorrer um array com foreach e tentar tratar um array associativo como se fosse uma estrutura de objetos ou de outra linguagem.