【发布时间】:2023-03-04 14:00:01
【问题描述】:
这是我在这里的第一篇文章,如果我犯了一两个错误,请原谅我:)
前几天我有一次面试(这个工作机会甚至与 PHP 无关),雇主给了我一些练习来向他展示我的技能。目前我被困在 PHP 上,这是我第一次在 PHP 中做任何事情,我对这个完全陌生。我真的很想要这份工作,所以我希望你能帮助我:)
任务: 创建类“Person”,在 Person 内部创建一个名为“data”的数组变量,键为:“name”、“surname”和“age”,然后创建方法 addPerson(),它将用数据填充数组。创建另一个方法 - showPerson() 来显示收集的数据(您可以使用 print_r();)。
到目前为止,我已经做了这个,但这完全是一团糟,它不起作用。我对PHP一无所知,代码严格来自这里和其他网站。
<?php
class Person
{
private $data = Array(
'name' => array(),
'surname' => array(),
'age' => array()
);
function addPerson($name, $surname, $age)
{
array_push($this->$data['name'] = $name);
array_push($this->$data['surname'] = $surname);
array_push($this->$data['age'] = $age);
}
function showPerson()
{
echo json_encode($data);
//print_r($data);
}
}
$human = new Person;
$man->addPerson("John", "Johnes", 50);
$woman->addPerson("Maria", "Johnes", 45);
$human->showPerson();
注意:未定义的变量:数据;致命错误:无法访问空属性
错误标记了 addPerson 方法中的第一个 array_push。我不知道如何修复代码以使其正常工作。提前谢谢你。
【问题讨论】:
-
试试
$this->data。dane也是错字吗? -
我也不是 PHP 人,但这是我的想法:$this->$data['name'] = $name 正在为 $data['name'] 分配一个字符串。但是你声明 $data['name'] 指向一个数组,而不是一个字符串
-
@chris85 是的,这是一个错字,我编辑了它。