Wpis z mikrobloga

@massejferguson: To jest tzw. setter i getter. W tym przykładzie nie mają za bardzo sensu. Setterów używa się najczęściej gdy chcesz ustawić jaką wartość zmiennej w klasie ale przed tym faktem dokonać walidacji danych.
  • Odpowiedz
@massejferguson: jak przeczytałeś wszystkie poradniki i dalej nie ogarniasz składnika klasy i wskaźnika this, to tak trochę słabo xD

No ale OK, generalnie chodzi o to, że przy użyciu wskaźnikia this i tej składni możesz pokazać TĘ składową, która znajduje się w obiekcie. Jak wywołujesz funkcje dla jabłka, to operuje na egzemplarzu "name" tego konkretnego jabłka. Czyli jak masz jabłko, banana i gruszkę to masz trzy obiekty, a każdy z
  • Odpowiedz
@Phatee:

Enkapsulacja inaczej zwana hermetyzacją (kapsułkowaniem) jest to jedno z głównych założeń programowania obiektowego. Polega na ukrywaniu metod i atrybutów dla klas zewnętrznych. Dostęp do nich możliwy jest tylko z wewnątrz klasy, do której należą, z klas zaprzyjaźnionych lub z klas dziedziczących.
  • Odpowiedz
@massejferguson: $this używasz do odwoływania się do zmiennych i funkcji znajdujących się wewnątrz klasy. Przykładowo $this->name odpowiada za zmienną $name, którą masz zdefiniowaną na samym początku klasy.
  • Odpowiedz
@massejferguson: Ok po kolei. Najpierw piszesz Klasę. Klasa to taki "przepis" na obiekty. Teraz popatrz co jest w tym przepisie. 2 properties (atrybuty czy jak to zwał) i 2x metody (funkcje). Czyli jeżeli z tej klasy stworzysz obiekt, to będzie miał dwa pola (imię i kolor) oraz będzie mógł uruchomić dwie funkcje (setname i getname).

Mam nadzieje, że atrybuty ogarniasz - to takie zwykłe zmienne, tylko siedzą w
  • Odpowiedz
@massejferguson: $this oznacza, że odnosisz się do zmiennej w klasie. Gdyby go nie było, php uzna, że chodzi o zmienna znajdująca się wewnątrz funkcji.

$this ->name = $name

oznacza: weź zmienną name zdeklarowaną w klasie a następnie przypisz do niej wartość trzymaną w zimniej name dostarczonej jako argument
  • Odpowiedz
Dobrze to rozumiem?


@massejferguson: źle, $this odwołuję się do twojej aktualnej instancji obiektu danej klasy, a $this->name do właściwości name tej danej klasy, mając kod $this->name = $name, przypisujsz do właściwości name danej instancji wartość ze zmiennej $name, mając return $this->name; zwracasz wartość która znajduje się w właściwości name instancji danej klasy, nic więcej, nic mniej, żadnej funkcji $this tutaj nie ma
  • Odpowiedz