2

オブジェクトのコレクションを保存しようとしていますが、foreach ループでオブジェクト メソッドを呼び出すことができません。これは基本的に私が持っているものです。print 関数は何も印刷しません。私が見過ごしているものはありますか、それともこれはそれを行う方法ではありませんか?

class person
{
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function get_name() {
        return $this->name;
    }
}

$test_set[] = new person("John");
$test_set[] = new person("Jane");

foreach($test_set as $set_item) {
    print $set_item->get_name();
}
4

2 に答える 2

4

次のように名前を設定する必要があります (おそらくただのタイプミスです):

public function __construct($name) {
    $this->name = $name; // not $this->$name
}
于 2012-04-25T20:01:11.593 に答える
2

あなたのループは機能しています。しかし、あなたのクラスには間違いがあります。

交換:

    public function __construct($name) {
        $this->$name = $name;
    }

と:

    public function __construct($name) {
        $this->name = $name;
    }
于 2012-04-25T20:05:34.110 に答える