Quanto ao código PHP abaixo, assinale a alternativa correta....

Próximas questões
Com base no mesmo assunto
Q2767406 Programação

Quanto ao código PHP abaixo, assinale a alternativa correta.


class Exemplo

{

public static $F1 = ‘Exemplo';


public static function F2() {

// ...

}

public function F3() {

// ...

}

}

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Tema Central da Questão: Esta questão aborda o conceito de membros estáticos e membros de instância em PHP, que é um aspecto fundamental da programação orientada a objetos na linguagem. Compreender como se dá o acesso a propriedades e métodos estáticos e não estáticos é crucial para resolver esta questão.

Resumo Teórico:

Em PHP, uma propriedade ou método estático pode ser acessado sem a necessidade de instanciar a classe. Isso é feito através do operador de resolução de escopo ::. Por outro lado, métodos e propriedades não estáticos requerem a criação de um objeto da classe para que possam ser acessados, utilizando o operador ->.

Propriedades e métodos estáticos são declarados com a palavra-chave static. Dentro de métodos estáticos, a pseudo-variável $this, que referencia a instância atual, não está disponível.

Alternativa Correta: A alternativa E - "Em um objeto instanciado da classe Exemplo, F2 não pode acessar $F1."

Justificativa: Embora a propriedade $F1 seja estática e possa ser acessada por métodos estáticos da classe, a estrutura da questão menciona que em um objeto instanciado, o método estático F2 não tem acesso direto a essa propriedade da forma como um método de instância teria. O método F2 precisa usar a classe diretamente, através de Exemplo::$F1, para acessar a propriedade estática.

Análise das Alternativas Incorretas:

A - "Dentro de F2, $this está disponível."

Erro: $this não está disponível dentro de métodos estáticos, pois eles não estão associados a uma instância específica da classe.

B - "A propriedade $F1 está acessível a objeto usando o operador -> (seta)."

Erro: Propriedades estáticas não são acessíveis através de objetos com o operador ->. Elas devem ser acessadas usando o operador ::.

C - "Não são acessíveis antes de se instanciar a classe: F1, F2 e F3."

Erro: Como $F1 e F2 são estáticos, eles são acessíveis sem instanciar a classe.

D - "Invocar o método F3 como estático suscita um aviso de nível E_STRICT."

Erro: Embora em versões mais novas do PHP seja desencorajado, não gerará um aviso E_STRICT, pois essa categoria de erro foi descontinuada em versões mais recentes.

Estratégias para Interpretação: Ao lidar com questões envolvendo propriedades e métodos estáticos, lembre-se das regras de acesso e da natureza de cada tipo, verificando sempre como o PHP os trata em termos de escopo e associação com a classe ou instância.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

Invocar um método que não é estático como um método estático gera um aviso E_STRICT; lógico, o PHP avisa que esse código pode causar problemas.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo