我是OOP PHP的新手,并且一直关注Laracasts OOP Bootcamp。我已经达到教程的某个部分,我遇到了麻烦。我有以下文件(忽略没有遵循约定,因为这是学习阶段):
$(document).on('load', function() {
var imgSrc = $('#backgroundImage').prop('src');
$(body).css('background', 'url(' + img + ')');
});
不幸的是,var_dump只给了我一名工作人员:
<?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());
我尝试将array(1) {
[0]=>
object(Person)#4 (1) {
["name":protected]=>
string(8) "Jane Doe"
}
}
添加到Staff类下的行[]
,但它仍然给我相同的输出。我还要仔细检查文件,我应该期待两个成员而不是一个。
有人可以告诉我哪里出错了吗?
感谢您的时间。
答案 0 :(得分:1)
除了一行之外,您的代码是正确的 - 类Staff
的构造函数定义不正确。取代
public function __constructor($members = [])
与
public function __construct($members = [])
由于此错误,行$staff = new Staff([$jeffrey]);
对内部$members
数组的初始化没有影响。