Właściwości
Część sekcji Programowanie obiektowe ścieżki PHP w Coddy. Lekcja 6 z 91.
Właściwości to zmienne należące do klasy. Przechowują informacje o stanie obiektu. W PHP właściwości należy deklarować wewnątrz klasy, używając słowa kluczowego określającego widoczność, takiego jak public.
Właściwości mogą mieć wartości domyślne: każdy nowy obiekt rozpoczyna od tej samej wartości początkowej, ale każdy obiekt zachowuje własną, niezależną kopię:
<?php
class Student {
public $school = "PHP Academy"; // wartość domyślna
public $name;
public $age;
}Właściwości bez wartości domyślnej mają wartość null, dopóki ich nie ustawisz.
Możesz ustawiać wartości właściwości za pomocą metody i $this:
class Student {
public $school = "PHP Academy";
public $name;
public $age;
public function setInfo($name, $age) {
$this->name = $name; // ustaw dane instancji
$this->age = $age; // ustaw dane instancji
}
}Utwórz obiekty studentów i ustaw ich indywidualne dane:
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);Uzyskaj dostęp do właściwości:
echo $student1->name . "\n"; // Alice
echo $student2->name . "\n"; // Bob
echo $student1->school . "\n"; // PHP Academy
echo $student2->school . "\n"; // PHP AcademyWynik:
Alice
Bob
PHP Academy
PHP AcademyKluczowa różnica: właściwości z wartościami domyślnymi (takie jak $school) mają tę samą wartość początkową dla każdego obiektu. Właściwości ustawiane za pomocą metod (takie jak $name i $age) są unikalne dla każdego obiektu.
Wyzwanie
ŁatwyUzupełnij klasę Student w pliku student.php:
- Zadeklaruj właściwość
$schoolz wartością domyślną"PHP Academy" - Zadeklaruj właściwości
$namei$age(bez wartości domyślnych) - Dodaj metodę
setInfo, która przyjmuje parametry$namei$ageoraz przypisuje im wartości za pomocą$this
Plik driver.php przetestuje Twoją klasę, tworząc dwóch studentów i wyświetlając ich informacje.
Spróbuj swoich sił
<?php
require_once 'student.php';
$student1 = new Student();
$student2 = new Student();
$student1->setInfo("Alice", 20);
$student2->setInfo("Bob", 22);
echo $student1->name . " is " . $student1->age . " at " . $student1->school . "\n";
echo $student2->name . " is " . $student2->age . " at " . $student2->school . "\n";
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