Я новичок в OOP PHP и следил за программой Lacacasts OOP Bootcamp. Я достиг определенной части учебника, где у меня проблемы. У меня есть следующие файлы (игнорировать, что конвенции не последовало, так как это фаза обучения):Почему массив не добавлен в свойство класса PHP?
<?php
class Person
{
protected $name;
public function __construct($name)
{
$this->name = $name;
}
}
class Staff
{
protected $members = [];
public function __constructor($members = [])
{
$this->members = $members;
}
public function add(Person $person)
{
$this->members[] = $person;
}
public function members()
{
return $this->members;
}
}
class Business
{
protected $staff;
public function __construct(Staff $staff)
{
$this->staff = $staff;
}
public function hire(Person $person)
{
$this->staff->add($person);
}
public function getStaffMembers()
{
return $this->staff->members();
}
}
$jeffrey = new Person('Jeffrey Way');
$staff = new Staff([$jeffrey]);
$laracasts = new Business($staff);
$laracasts->hire(new Person('Jane Doe'));
var_dump($laracasts->getStaffMembers());
К сожалению, var_dump только дает мне один из сотрудников:
array(1) {
[0]=>
object(Person)#4 (1) {
["name":protected]=>
string(8) "Jane Doe"
}
}
Я пытался добавив []
к строке $this->members = $members;
под классом Staff, но он все равно дает мне тот же результат. Я также дважды проверял файлы, я должен ожидать двух членов вместо одного.
Может ли кто-нибудь сказать мне, где я ошибся?
Спасибо за ваше время.