public function setAlbumTable(AlbumTable $albumTable)
{
$this->albumTable = $albumTable;
return $this;
}
我说的第一个参数(它不是参数btw)看起来像数据类型?它是什么 ?不变 ?我在尝试在zend框架2中开发应用程序时遇到了这个问题
答案 0 :(得分:1)
这是PHP's type hinting。这意味着此函数的第一个参数 - $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
答案 1 :(得分:1)
您要显示的代码段是通过setter方法注入依赖项的示例。 setter传递一个AlbumTable实例,并将此实例分配给一个类字段。
您的方法仅传递一个参数:$albumTable
。
参数之前的AlbumTable
是type hint,并确保只能将AlbumTable或派生类的实例传递给setter。
答案 2 :(得分:0)
它强制实际参数($ albumTable)成为AlbumTable类的实例。如果其他任何内容传递给函数,PHP将给出致命错误。
这很有用,所以你不必检查你收到的变量/对象的类型,以便利用它的功能和属性。