Słowo kluczowe $this
Część sekcji Programowanie obiektowe ścieżki PHP w Coddy. Lekcja 4 z 91.
Słowo kluczowe $this odnosi się do bieżącej instancji klasy w jej metodach. Umożliwia dostęp do właściwości bieżącego obiektu i ich modyfikowanie.
Oto przykład klasy z metodami używającymi $this:
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}Słowo kluczowe $this jest używane wewnątrz metod, aby odwoływać się do obiektu, który wywołał daną metodę.
Utwórz obiekt samochodu i ustaw właściwości:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Teraz wywołaj metody:
$myCar->honk();
$myCar->describe();Wynik:
Beep beep!
I am a Red SedanGdy wywołujesz $myCar->describe(), PHP automatycznie ustawia $this, aby odnosił się do $myCar. Dzięki temu metoda wie, do których właściwości obiektu uzyskać dostęp.
Gdybyś miał inny obiekt samochodu:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Jestem niebieskim SUV-emKluczowa kwestia: $this zawsze odnosi się do konkretnego obiektu, który wywołał metodę. Każdy obiekt ma własny kontekst podczas wykonywania metody.
Wyzwanie
ŁatwyUzupełnij klasę Car w pliku car.php, dodając metodę o nazwie displayInfo, która używa słowa kluczowego $this, aby wyświetlić rok, markę i model samochodu w formacie:
"This car is a [year] [make] [model]"
car.php: zawiera definicję klasyCar, do której dodasz metodędisplayInfodriver.php: główny plik wykonywalny, który importuje i używa klasyCar(zablokowany)
Spróbuj swoich sił
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Programowanie obiektowe
1Podstawy programowania obiektowego
Pliki zewnętrzneWprowadzenie do programowania obiektowegoKlasy a obiektySłowo kluczowe $thisMetodyWłaściwościKonstruktor (__construct)Destruktor (__destruct)Powtórka — prosty kalkulator4Dziedziczenie
Podstawy dziedziczeniaSłowo kluczowe parent::Przesłanianie metodSłowo kluczowe finalKlasy abstrakcyjnePowtórzenie – hierarchia pracowników7Enkapsulacja
Public, protected, privateModyfikatory dostępu w szczegółachGettery i setteryUkrywanie informacjiPromocja parametrów konstruktora (8.0)Podsumowanie — system ewidencji studentów2Przestrzenie nazw i autoloading
Wprowadzenie do przestrzeni nazwSłowo kluczowe useStandard autoloadingu PSR-4Autoloader ComposeraPodsumowanie – uporządkowany projekt5Interfejsy i kontrakty
Wprowadzenie do interfejsówImplementowanie interfejsówImplementowanie wielu interfejsówInterfejs a klasa abstrakcyjnaPodpowiadanie typów za pomocą interfejsówPodsumowanie — kalkulator kształtów8Metody magiczne
Wprowadzenie do metod magicznych__toString i __debugInfo__get, __set, __isset, __unset__call i __callStatic__clone i klonowanie obiektów__serialize i __unserializePodsumowanie — własna kolekcja11System typów i obsługa błędów
Deklaracje typówTypy nullableTypy sumy i przecięciaKlasy wyjątkówNiestandardowa hierarchia wyjątkówTry, Catch, FinallyPodsumowanie — walidator formularzy14Projekt: Zarządzanie biblioteką
Przegląd projektuKlasy książki i użytkownika3Właściwości klas
Właściwości instancji a właściwości statyczneStałe w klasachMetody i właściwości statyczneWłaściwości prywatne i chronioneWłaściwości tylko do odczytu (PHP 8.1)Podsumowanie — menedżer kont bankowych6Polimorfizm
Ponowne omówienie nadpisywania metodPolimorfizm za pomocą interfejsówPodpowiedzi typów i typy sumyPóźne wiązanie statycznePodsumowanie — procesor płatności9Cechy
Wprowadzenie do cechKorzystanie z wielu cechRozwiązywanie konfliktów cechMetody abstrakcyjne w cechachCechy a dziedziczenie12Wzorce projektowe, część 1
Wprowadzenie do wzorców projektowychWzorzec SingletonWzorzec FactoryWzorzec ObserverWzorzec StrategyPoćwicz samodzielnie: Kompilator PHP online