-1
我写了一个类PHP类数组对象方法访问问题
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());
}
显示您的完整代码,在代码中没有'getCars'或'getModel'方法? –
请显示真实的代码,您没有显示为User :: cars设置的内容。根据错误消息,它不是'Car'对象,所以在设置属性时可能会在代码中出现错误。但是如果没有真正的代码,我们所能做的只是猜测。 – enricog