如何将元素添加到PHP中作为对象属性的数组中?
我希望能够有一个包含数组作为属性的对象。我希望能够向该数组添加元素。我得到了错误:警告:array_push()期望参数1为array,在第18行vw1997Array的/wwg32np9中给出null(我正在W3w7demo页面中运行此命令)如何将元素添加到PHP中作为对象属性的数组中?,php,html,arrays,object,Php,Html,Arrays,Object,我希望能够有一个包含数组作为属性的对象。我希望能够向该数组添加元素。我得到了错误:警告:array_push()期望参数1为array,在第18行vw1997Array的/wwg32np9中给出null(我正在W3w7demo页面中运行此命令) 您需要进行两项更改: 1.使用$this->乘客内部功能 2.使用print\u r()进行打印 <?php class Car { public $model; public $year; public $passe
您需要进行两项更改: 1.使用
$this->乘客
内部功能
2.使用print\u r()
进行打印
<?php
class Car {
public $model;
public $year;
public $passengers;
function __construct() {
$this->model = "";
$this->year = " ";
$this->passengers=array();
}
function addPassengers($passenger)
{
array_push($this->passengers, $passenger);
return $this->passengers;
}
}
$herbie = new Car();
$herbie->model = "vw";
$herbie->year = "1997";
$herbie->addPassengers("Mike");
echo $herbie->model;
echo $herbie->year;
print_r($herbie->passengers);
?>
输出:-
注意:-您可以编写更少的代码并获得相同的输出:
如其他评论所述,您需要使用私有变量
而不是公共变量
示例:-
echo$herbie->乘客代码>需要打印($herbie->乘客)
在添加乘客
中,你需要使用$this->passengers
,而不是$passengers
,除此之外还有@AnantSingh--AlivetoDie注释,一切都很好。我只是想说@Nick。对象属性在行为中不是“全局变量”。他们需要$this
来定义方法中的作用域。从长远来看,我建议将类的属性设置为私有或受保护。这是为了防止对属性进行随机更改,并可能使其变得毫无意义(即,使$year
='不久的某个时候')
<?php
class Car {
public $model;
public $year;
public $passengers;
function __construct() {
$this->model = "";
$this->year = " ";
$this->passengers=array();
}
function addPassengers($passenger)
{
array_push($this->passengers, $passenger);
return $this->passengers;
}
}
$herbie = new Car();
$herbie->model = "vw";
$herbie->year = "1997";
$herbie->addPassengers("Mike");
echo $herbie->model;
echo $herbie->year;
print_r($herbie->passengers);
?>