Nie rozumiem

CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Postów:259
0
Kopiuj
public function calculateSalary()
{
   return $this->wage * $this->hours;
}
Korzystając z przedstawionego wcześniej przykładu
metody 
calculateSalary()
, możemy ją wywołać w następujący sposób:
$employee = new Employee("Janina");
$salary = $employee->calculateSalary();

To fragment z książki. Trochę nie rozumiem tego, jak to się robi $employee = new Employee("Janina"); skąd wiadomo, że to przypisuje pierwszej zmiennej wartość Janina. Czy to jest normalne we wszystkich obiektach/klasach czy tylko jak się doda __set() ?

0

Tak z ciekawości, ominąłeś rozdział o konstruktorach?

DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
2

Twoja klasa Employee ma najprawdopodobniej zdefiniowane cos, co się nazywa konstruktor.

Kopiuj
class Employee
{
	private $name;
	
	public function __construct(string $name)
	{
		$this->name = $name;
	}
}

Poszukaj sobie, co to konstruktor, bo mi się nie chce opisywać tego po raz kolejny, a pewnie i tak nie zrobię tego tak dobrze, jak ktoś już to zrobił na stackoverflow.

PS. Unikaj magicznych setterów (__set). W zasadzie unikaj w programowaniu wszystkiego, co ma w nazwie magic... a już szczególnie w phpie, bo to często zło.

edytowany 3x, ostatnio: Desu
CodeRZ
  • Rejestracja:ponad 6 lat
  • Ostatnio:2 dni
  • Postów:259
0
Smutny Kot napisał(a):

Tak z ciekawości, ominąłeś rozdział o konstruktorach?

Nie, w książce nie ma na razie nic o kontrustorach.

@Desu czyli to konstruktor. Dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.