Eu vejo a variável $this
em PHP o tempo todo e não tenho ideia para que ela é usada. Eu nunca usei pessoalmente.
Alguém pode me dizer como $this
funciona a variável em PHP?
É uma referência ao objeto atual, é mais comumente usado em código orientado a objetos.
Exemplo:
<?php
class Person {
public $name;
function __construct( $name ) {
$this->name = $name;
}
};
$jack = new Person('Jack');
echo $jack->name;
Isso armazena a string 'Jack' como uma propriedade do objeto criado.
A melhor maneira de aprender sobre a
$this
variável em PHP é testá-la no interpretador em vários contextos:Portanto, a
$this
pseudo-variável tem os métodos e propriedades do Objeto Atual. Isso é útil porque permite acessar todas as variáveis de membro e métodos de membro dentro da classe. Por exemplo:$this
é uma referência a um PHPObject
que foi criado pelo interpretador para você, que contém um array de variáveis.Se você chamar
$this
dentro de um método normal em uma classe normal,$this
retorna o Object (a classe) à qual esse método pertence.É possível
$this
ser indefinido se o contexto não tiver um objeto pai.php.net tem uma grande página falando sobre programação PHP orientada a objetos e como
$this
se comporta dependendo do contexto. https://www.php.net/manual/en/language.oop5.basic.phpfonte
Eu conheço sua velha questão, de qualquer maneira outra explicação exata sobre $ this . $ this é usado principalmente para se referir a propriedades de uma classe.
Exemplo:
resultado:
fonte
É a forma de referenciar uma instância de uma classe de dentro dela mesma, da mesma forma que muitas outras linguagens orientadas a objetos.
Dos documentos PHP :
fonte
Vamos ver o que acontece se não usarmos $ this e tentarmos ter variáveis de instância e argumentos de construtor com o mesmo nome com o seguinte trecho de código
Não ecoa nada além
isso ecoa 'Tom'
fonte
$this
no segundo construtor.$name
está Tom, mas fora da função não tem nenhum valor, pois seu escopo é limitado ao da função.quando você cria uma classe, você tem (em muitos casos) variáveis de instância e métodos (também conhecidos como funções). $ this acessa essas variáveis de instância para que suas funções possam pegar essas variáveis e fazer o que precisam para fazer o que você quiser com elas.
outra versão do exemplo de meder:
fonte
$this
é uma referência ao objeto de chamada (geralmente o objeto ao qual o método pertence, mas possivelmente outro objeto, se o método for chamado estaticamente a partir do contexto de um objeto secundário).fonte
$ esta é uma variável especial e se refere ao mesmo objeto, ou seja. em si.
ele realmente se refere à instância da classe atual
aqui está um exemplo que irá limpar a declaração acima
fonte
Esta é uma explicação longa e detalhada. Espero que isso ajude os iniciantes. Vou tornar isso muito simples.
Primeiro, vamos criar uma classe
Você pode omitir a tag de fechamento php
?>
se estiver usando apenas código php.Agora vamos adicionar propriedades e um método dentro
Class1
.A propriedade é apenas uma variável simples, mas damos a ela o nome de propriedade porque ela está dentro de uma classe.
O método é apenas uma função simples, mas dizemos método porque ele também está dentro de uma classe.
A
public
palavra-chave significa que o método ou uma propriedade pode ser acessada em qualquer lugar no script.Agora, como podemos usar as propriedades e o método interno
Class1
?A resposta é criar uma instância ou um objeto, pense em um objeto como uma cópia da classe.
Criamos um objeto, que
$object1
é uma cópia deClass1
todo o seu conteúdo. E despejamos todo o conteúdo do$object1
usovar_dump()
.Isso vai te dar
Portanto, todo o conteúdo de
Class1
está dentro$object1
, excetoMethod1
, não sei por que os métodos não aparecem durante o despejo de objetos.Agora, e se quisermos
$property1
apenas acessar . É simples, fazemosvar_dump($object1->property1);
, acabamos de adicionar->property1
, apontamos para ele.também podemos acessar
Method1()
, nós fazemosvar_dump($object1->Method1());
.Agora, suponha que eu queira acessar
$property1
de dentroMethod1()
, farei issonós criamos
$object2 = new Class1;
que é uma nova cópia deClass1
ou podemos dizer uma instância. Então apontamos paraproperty1
de$object2
Isso será impresso
string(15) "I am property 1"
no navegador.Agora, em vez de fazer isso por dentro
Method1()
Nós fazemos isso
O
$this
objeto é usado dentro da classe para se referir à própria classe.É uma alternativa para criar um novo objeto e depois devolvê-lo assim
Outro exemplo
Criamos 2 propriedades contendo inteiros e então os adicionamos e colocamos o resultado em
$this->result
.Não esqueça isto
$this->property1
=$property1
=119
eles têm o mesmo valor .. etc.
Espero que isso explique a ideia.
Esta série de vídeos vai te ajudar muito em OOP
https://www.youtube.com/playlist?list=PLe30vg_FG4OSEHH6bRF8FrA7wmoAMUZLv
fonte
Refere-se à instância da turma atual, como disse meder .
Veja os documentos do PHP . É explicado no primeiro exemplo.
fonte