Um programador PHP deseja armazenar um dado booleano que ...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - uma variável de sessão.
Para entender a alternativa correta, é importante compreender o conceito de sessão em aplicações web. Uma sessão pode ser descrita como uma série de requisições feitas pelo mesmo usuário, que são tratadas pelo servidor como um único contexto contínuo. Isso é útil quando desejamos manter estado entre as diversas páginas de um site, como por exemplo, o estado de autenticação de um usuário.
No PHP, as variáveis de sessão são usadas justamente para armazenar informações que devem ser preservadas ao longo da sessão do usuário. Elas são acessíveis em todas as páginas do site durante a visita do usuário, o que se encaixa perfeitamente no cenário descrito na questão, onde se deseja manter a informação de que o usuário está autenticado ao navegar pelas diferentes páginas do site.
Utilizando a superglobal $_SESSION, o programador PHP pode armazenar valores que serão mantidos enquanto o navegador estiver aberto e a sessão não for encerrada. Para isso, antes de utilizar as variáveis de sessão, é necessário iniciar a sessão com a função session_start(). Depois disso, o valor booleano que indica se o usuário está autenticado ou não pode ser armazenado em uma variável de sessão, como por exemplo:
<?php
session_start();
$_SESSION['autenticado'] = true; // ou false, dependendo do estado de autenticação
?>
As outras opções não são apropriadas para o cenário em questão:
- um campo de um objeto é específico desse objeto e não persiste automaticamente entre diferentes páginas sem um mecanismo de armazenamento adicional;
- uma classe abstrata e uma interface são estruturas que definem características e comportamentos que as classes podem implementar, mas não são utilizadas para armazenar dados de estado;
- uma variável estática mantém o seu valor dentro de uma única execução de script e não entre diferentes requisições de páginas.
Portanto, a alternativa D é a correta porque as variáveis de sessão oferecem o mecanismo necessário para preservar a informação do estado de autenticação do usuário em todo o site, durante a sessão do usuário.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gabarito: D (Variáveis de sessão)
As variáveis de sessão correspondem a um dos possíveis itens das chamadas variáveis superglobais da PHP.
Segue a relação das variáveis superglobais (variáveis pré-definidas providas pelo ambiente PHP, acessíveis em quaisquer pontos de uma aplicação, são estruturadas em "associative arrays").
$GLOBALS All variables that are currently defined in the global scope of the script. The variable names are the keys of the array.
$_SERVER Information such as headers, paths, and script locations. The entries in this array are created by the web server, and there is no guarantee that every web server will provide any or all of these.
$_GET Variables passed to the current script via the HTTP GET method.
$_POST Variables passed to the current script via the HTTP POST method.
$_FILES Items uploaded to the current script via the HTTP POST method.
$_COOKIE Variables passed to the current script via HTTP cookies.
$_SESSION Session variables available to the current script.
$_REQUEST Contents of information passed from the browser; by default, $_GET, $_POST, and $_COOKIE.
$_ENV Variables passed to the current script via the environment method.
Referência para variáveis de sessão:
http://php.net/manual/pt_BR/reserved.variables.session.php
Referência para funções para sessão:
http://php.net/manual/pt_BR/ref.session.php
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo