0
public function setAlbumTable(AlbumTable $albumTable)
{
$this->albumTable = $albumTable;
return $this;
}

我说的是第一个参数(它不是参数 btw)看起来像数据类型?它是什么 ?持续的 ?尝试在 zend 框架 2 中开发应用程序时遇到此问题

4

3 回答 3

1

这是PHP 的类型提示。这意味着这个函数的第一个参数$albumTable——必须是AlbumTable类的实例或者继承自它的类。

class Car {}

class BlueCar extends Car {}

function drive_the_car(Car $car) {}

drive_the_car(42); // error, first parameter must be an instance of Car

drive_the_car(new stdClass()); // error

drive_the_car(new Car()); // works

drive_the_car(new BlueCar()); // works
于 2012-03-10T12:59:04.760 回答
1

您展示的这段代码是通过 setter 方法进行依赖注入的示例。设置器被传递了一个 AlbumTable 的实例并将这个实例分配给一个类字段。

您的方法仅传递一个参数:$albumTable.

AlbumTablebefore 参数是一个类型提示,确保只有 AlbumTable的实例或派生类可以传递给 setter。

于 2012-03-10T13:20:45.083 回答
0

它强制实际参数 ($albumTable) 是 AlbumTable 类的实例。如果将其他任何内容传递给函数,PHP 将给出致命错误。

这很有用,因此您不必检查收到的变量/对象的类型即可使用它的功能和属性。

于 2012-03-10T13:04:36.163 回答