这是ZF2常量var还是数据类型

时间:2012-03-10 12:53:19

标签: zend-framework2

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

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

3 个答案:

答案 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

参数之前的AlbumTabletype hint,并确保只能将AlbumTable或派生类的实例传递给setter。

答案 2 :(得分:0)

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

这很有用,所以你不必检查你收到的变量/对象的类型,以便利用它的功能和属性。