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

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

Para entender essa questão, é importante ter conhecimento sobre conceitos de Programação Orientada a Objetos (POO) e o uso de elementos estáticos em PHP. A questão aborda como métodos e propriedades estáticas funcionam e como são acessados dentro do contexto de uma classe.

Alternativa E Explicada: A alternativa E é correta porque, mesmo que um método estático (como F2) não utilize variáveis de instância (como $this), ele pode sim acessar propriedades estáticas como $F1 usando self:: ou Exemplo::. Contudo, o enunciado faz uma afirmação incorreta ao dizer que F2, sendo estático, não pode acessar $F1, mas o contexto considerado está na maneira inadequada de acesso, pois F2 deve usar o contexto estático para acesso, como self::$F1 ou Exemplo::$F1.

Vamos analisar as outras alternativas:

A: Dentro de F2, $this não está disponível. Isso ocorre porque $this é usado para referenciar o objeto instanciado, e métodos estáticos não têm acesso a instâncias de objetos.

B: A propriedade $F1 é estática, e para acessá-la, devemos usar Exemplo::$F1 ou self::$F1 dentro da classe. O operador -> é usado para acessar membros de instância, não membros estáticos.

C: F1 e F2 são estáticos e, portanto, podem ser acessados sem instanciar a classe. O método F3, no entanto, requer a instância de um objeto para ser acessado.

D: Invocar o método F3 como estático geraria um erro de E_STRICT em versões mais antigas do PHP, mas nas versões mais recentes, pode gerar um aviso. Contudo, a afirmação está incorreta em termos gerais.

Essas explicações são baseadas nos conceitos fundamentais de classes, métodos e propriedades estáticas em PHP. Compreender a diferença no acesso de propriedades e métodos estáticos e de instância é crucial para resolver questões como esta.

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