Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — VUNESP 2023

ProgramaçãoLinguagens de programação
Código
vu074769
Banca
VUNESP
Órgão
Prefeitura de Guararapes - SP
Ano
2023
Nível
Médio
Cargo
Técnico em Informática
Observe o seguinte trecho de código escrito na linguagem de programação PHP versão 8:setcookie(“CookieSiteInfo[user]”, “Fulano”);setcookie(“CookieSiteInfo[fullName]”, “Fulano da Silva”);setcookie(“CookieSiteInfo[birth]”, “01/01/1990”);Esse trecho informa ao browser um cookie que deve conter dados de um usuário, para acessar especificamente o índice “fullName” desse cookie deve-se escrever:
  1. Aecho $_COOKIE[‘fullname’];
  2. Becho $_COOKIE[‘CookieSiteInfo’][‘fullName’];
  3. Cecho $_COOKIE[‘CookieSiteInfo’]->fullName;
  4. Decho $_COOKIE[‘CookieSiteInfo[fullName]’];
  5. Eecho $_COOKIE->CookieSiteInfo->fullName;
Revelar gabarito e comentário

GabaritoB — echo $_COOKIE[‘CookieSiteInfo’][‘fullName’];

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Cookies no PHP: acesso a índices de arrays em cookies

Gabarito: letra B. Em PHP, quando um cookie é definido com nome no formato nome[indice], ele é armazenado como um array na superglobal $_COOKIE. Para acessar o valor do índice fullName do cookie CookieSiteInfo, deve-se usar $_COOKIE['CookieSiteInfo']['fullName']. As demais alternativas empregam sintaxes incorretas (case-sensitive, operador objeto, ou string literal).

A questão testa o conhecimento sobre como o PHP trata cookies com nomes que contêm colchetes. No código fornecido, setcookie("CookieSiteInfo[user]", "Fulano"); etc., o PHP cria um único cookie chamado CookieSiteInfo que é um array associativo com as chaves user, fullName e birth. O acesso correto é feito via $_COOKIE['CookieSiteInfo']['fullName'].

Alternativa A — ❌ Incorreta

echo $_COOKIE['fullname']; está errada porque (1) o nome do cookie é CookieSiteInfo, não fullname; (2) a chave fullName é case-sensitive (usa 'N' maiúsculo). E não considera que o cookie é um array.

Alternativa B — ✅ Correta ⟵ GABARITO

echo $_COOKIE['CookieSiteInfo']['fullName']; utiliza a sintaxe correta para acessar um array dentro de $_COOKIE: primeiro o nome do cookie (CookieSiteInfo), depois o índice (fullName).

Alternativa C — ❌ Incorreta

echo $_COOKIE['CookieSiteInfo']->fullName; usa o operador objeto ->, mas $_COOKIE['CookieSiteInfo'] é um array, não um objeto. Acesso a arrays em PHP é feito com colchetes, não com seta.

Alternativa D — ❌ Incorreta

echo $_COOKIE['CookieSiteInfo[fullName]']; tenta acessar um cookie cujo nome literal seria CookieSiteInfo[fullName]. No código, o nome do cookie é CookieSiteInfo, não a string contendo colchetes. O PHP automaticamente interpreta os colchetes como indicadores de array, então a chave real é CookieSiteInfo (um array), e não CookieSiteInfo[fullName].

Alternativa E — ❌ Incorreta

echo $_COOKIE->CookieSiteInfo->fullName; usa sintaxe de objeto em $_COOKIE (que é um array, não um objeto) e também usa -> para acessar propriedades, o que é inválido. A superglobal $_COOKIE é um array associativo, não um objeto.

PEGA ESSA DICA!

No PHP, cookies com nomes como nome[chave] são interpretados como arrays. Para acessar, use $_COOKIE['nome']['chave']. Lembre-se de que os nomes são case-sensitive e que $_COOKIE é um array, não um objeto.

Gabarito: letra B

Link permanente: /questoes/vu074769