如何将元素添加到PHP中作为对象属性的数组中?

如何将元素添加到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

我希望能够有一个包含数组作为属性的对象。我希望能够向该数组添加元素。我得到了错误:警告:array_push()期望参数1为array,在第18行vw1997Array的/wwg32np9中给出null(我正在W3w7demo页面中运行此命令)


您需要进行两项更改:

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);
?>