我写了一个课
class User {
private $cars = array(); //store class Car 's object
public function getCars()
{
return $this->cars;
}
public function setCars($cars)
{
$this->cars = $cars;
}
}
class Car{
private $model;
public function getModel()
{
return $this->model;
}
public function setModel($model)
{
$this->model = $model;
}
}
$user = new User();
$cars = $user->getCars();
$cars[0]->getModel();
当我尝试访问getModel()php报告“调用未定义的方法stdClass :: getModel()”时。 是否有处理此类案件的最佳做法?
编辑:我填写了getter和setter。实际上,它是由phpstorm生成的。
编辑:我再试一次,它适用于下面的演示代码。原始代码太复杂,无法显示。也许是因为我对按值复制和数组引用的误解造成的。
请忽略这个问题。遗憾。
class User {
private $cars = array(); //store class Car 's object
public function getCars()
{
return $this->cars;
}
public function setCars($cars)
{
$this->cars = $cars;
}
}
class Car{
private $model;
public function getModel()
{
return $this->model;
}
public function setModel($model)
{
$this->model = $model;
}
}
$user = new User();
$car = new Car();
$car->setModel("Ford");
$arr = $user->getCars();
array_push($arr,$car);
$user->setCars($arr);
foreach($user->getCars() as $car) {
var_dump($car->getModel());
}
答案 0 :(得分:0)
您尚未显示[Getter Setter ]
代码。您需要使用以下内容创建一个:
public function setCars($val){
$this->cars = $val;
}
public function getCars(){
return $this->cars;
}
同样适用于getModel()