在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));
}
它完美地运作。那有什么不对?
答案 0 :(得分:13)
你完全以同样的方式完成它,只需要进行一些语法更改:
public function foo(Bar $bar)
{
// $bar->method()
}
请注意,只有type hint才能使用类和数组。