PHP在数组中创建新对象


PHP create new objects into array

我创建了一个Magazine类,其中有三个属性,我希望在创建对象时将其直接存储到数组中。现在,我想我可以做的只是直接在数组中创建新对象,但它似乎不起作用?

<?php
class Magazine {
  public $id;
  public $name;
  public $price;
  public function __contruct($id, $name, $price) {
    $this->id =     $id;
    $this->name =   $name;
    $this->price =  $price;
  }
}
$magazines = array(
  new Magazine("svg_aftbld","Stavanger Aftenblad", 200),
  new Magazine("tsk_ubld","Teknisk Ukeblad", 300),
  new Magazine("se_ho","Se og H&oslash;r", 100),
  new Magazine("fam","Familien", 150)
);
print_r($magazines);
?>

这是上面代码的输出:

Array ( [0] => Magazine Object ( [id] => [name] => [price] => ) [1] => Magazine Object ( [id] => [name] => [price] => ) [2] => Magazine Object ( [id] => [name] => [price] => ) [3] => Magazine Object ( [id] => [name] => [price] => ) )

我还尝试创建一个空数组,然后通过推送新对象来填充它,如下所示:

<?php
array_push($magazines,new Magazine("svg_aftbld","Stavanger Aftenblad", 200));
array_push($magazines,new Magazine("tsk_ubld","Teknisk Ukeblad", 300));
array_push($magazines,new Magazine("se_ho","Se og H&oslash;r", 100));
array_push($magazines,new Magazine("fam","Familien", 150));
?>

但它产生了与以前相同的产出。

正如你可能猜到的,我正在学习PHP,我来自Java。我读过几个类似的问题,但大多数问题似乎都过于复杂了。但我想可能是一个不太了解PHP的人。也可以随意向我讲授最佳实践;)

您编写了__contruct而不是__construct。。。