Słowo kluczowe $this w PHP: czym jest i jak z niego korzystać

$this to jedna z najważniejszych i najbardziej przydatnych rzeczy w programowaniu obiektowym w PHP, a zarazem jedna z najczęściej pomijanych. Wiele osób słyszało o tym słowie kluczowym, ale nie wie, jak z niego korzystać. Ten artykuł krótko wyjaśnia, czym jest $this i jak działa.

Słowo kluczowe $this w PHP: czym jest i jak z niego korzystać

Wprowadzenie

$this to jedna z najważniejszych i najbardziej przydatnych rzeczy w programowaniu obiektowym w PHP (OOP, Object Oriented Programming). I niestety jedna z najczęściej pomijanych. Wiele osób słyszało o tym słowie kluczowym, ale nie wie, jak z niego korzystać.

W tym artykule krótko wyjaśnię, czym jest $this i jak działa. Jeśli programowanie obiektowe nic ci jeszcze nie mówi, zacznij od jego podstaw: ten tekst będzie wtedy dużo bardziej zrozumiały.

Czym jest $this i jak działa?

Słowo kluczowe $this daje nam dostęp do metod i właściwości naszej klasy. Możemy więc z wnętrza bieżącej klasy wywołać metodę albo odczytać właściwość.

Dla przykładu zacznijmy od utworzenia prostej klasy o nazwie Dog. Będzie nam towarzyszyć przez kolejne przykłady w tym wpisie.

php
class Dog {

    public $name;
    public $age;
}

Żeby odczytać właściwość naszej klasy, używamy $this w taki sposób:

php
$this->name

Powyższy przykład pokazuje po prostu, jak poprawnie użyć tego słowa kluczowego. Zwróć uwagę, że po strzałce pomijamy $ i piszemy name, choć właściwość zadeklarowano jako $name. Warto to zapamiętać, inaczej możesz długo się zastanawiać, dlaczego kod nie działa tak, jak powinien.

Słowo kluczowe $this a metody

Użyjmy teraz $this wewnątrz metody naszej klasy:

php
class Dog {

    public $name;
    public $age;

    public function intro(){

        echo 'Voici ' .$this -> name . ' et il a ' .$this -> age . 'ans.';

    }
}

Żeby nasza funkcja się wykonała, musimy sami utworzyć obiekt klasy, ustawić wartości jej właściwości, a potem wywołać metodę publiczną:

php
<?php
// Utworzenie instancji
$blacky = new Dog();

// Dodanie właściwości name
$blacky->name = 'Toffee';

// Dodanie właściwości age
$blacky->age = '2 months';

I na koniec wywołujemy naszą funkcję.

php
echo $blacky->intro();

Właśnie wciągnęliśmy właściwości klasy do wnętrza funkcji. Wynik będzie wyglądał mniej więcej tak:

C’est Toffee et il a 2 mois.

$this pozwala też wywołać metodę z wnętrza innej metody tej samej klasy. Oto szybki przykład na nowej klasie, w której jedna metoda sięga po drugą przez $this.

php
class Man{
    public $name;

    public function say(){
         echo 'Bonjour ' . $this->name;     
    }

    public function hello(){
        $this->say;
    }
}

Utwórzmy teraz obiekt, ustawmy wartości i zwróćmy funkcję.

php
// Utworzenie instancji obiektu
$john = new Man();

// Dodanie imienia
$john->name ='john';

// Wywołanie metody hello()
echo $john->hello();

Wynik powinien być taki

Bonjour John

Tak właśnie używa się $this wewnątrz metody, żeby wywołać inną metodę tej samej klasy.

Podsumowanie

Jak widać, całość jest naprawdę wygodna. Przyzwyczajenie się do wstawiania tego do kodu chwilę zajmuje, ale kiedy już wejdzie w krew, będziesz z tego korzystać na okrągło.

PHP

Damien Flandrin Web developer od 2010 roku, twórca Gekkode i Email Impact. Każdy artykuł jest sprawdzany na prawdziwym projekcie przed publikacją. Kontakt
Newsletter

Nowe testy, poradniki i projekty, e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.