1
resposta

Está correto o acesso ao atributo estático?

Na aula do singleton foi feito acesso ao atributo estático da seguinte maneira:

class Teste{
        private static $instance = null;
        private $produto;
        private $valor;

        private function __construct($produto,$valor){
            $this->produto = $produto;
            $this->valor = $valor;
        }

        public static function getInstance($produto,$valor){
            if(is_null($this->instance)){
                $this->instance = new Teste($produto,$valor);
            }
            return $this->instance;
        }
    }

Ao executar isso é retornado o erro: Using $this when not in object context

É algo que faz sentido ,pois, ao pesquisar a forma de acessar um atributo estático é pelo palavra reservada SELF

class Teste{
        private static $instance = null;
        private $produto;
        private $valor;

        private function __construct($produto,$valor){
            $this->produto = $produto;
            $this->valor = $valor;
        }

        public static function getInstance($produto,$valor){
            if(is_null(self::$instance)){
                self::$instance = new Teste($produto,$valor);
            }
            return self::$instance;
        }
    }

O exemplo da aula está correto, e eu esqueci de algum detalhe?

1 resposta

Opa Anderson, vc está correto. Pode sugerir a melhoria no curso? Tem um icone, com uma engrenagem! Aí fica registrado que a dica foi sua :).