在PHP中将对象作为参数传递

时间:2012-02-17 17:14:25

标签: php

在Java中,我可以直接在参数

中传递一个对象
public int foo (Bar bar)
{
    ... call the methods from Bar class
}

那我怎么能用PHP做同样的事情呢。谢谢 这是我的代码:

class Photo
{
    private $id, $name, $description;
    public function Photo($id, $name, $description)
    {
        $this->id = $id;
        $this->name = $name;
        $this->description = $description;
    }
}
class Photos
{
    private $id = 0;
    private $photos = array();

    private function add(Photo $photo)
    {
        array_push($this->photos, $photo);
    }
    public function addPhoto($name, $description)
    {
        add(new Photo(++$this->id, $name, $description));
    }
}
$photos = new Photos();
$photos->addPhoto('a', 'fsdfasd');
var_dump($photos); // blank

如果我更改了添加功能

function add($name, $description)
{
    array_push($this->photos, new Photo(++$this->id, $name, $description));
}

它完美地运作。那有什么不对?

1 个答案:

答案 0 :(得分:13)

你完全以同样的方式完成它,只需要进行一些语法更改:

public function foo(Bar $bar)
{
    // $bar->method()
}

请注意,只有type hint才能使用类和数组。