Zend framework2 这是ZF2常量变量还是数据类型

Zend framework2 这是ZF2常量变量还是数据类型,zend-framework2,Zend Framework2,我说的第一个参数(顺便说一句,它不是参数)看起来像数据类型?它是什么?常数我在zend framework 2中尝试开发应用程序时遇到了这种情况。这意味着此函数的第一个参数-$albumTable-必须是albumTable类的实例或从中继承的类 public function setAlbumTable(AlbumTable $albumTable) { $this->albumTable = $albumTable; return $this; } 它强制实际参数($albumTab

我说的第一个参数(顺便说一句,它不是参数)看起来像数据类型?它是什么?常数我在zend framework 2中尝试开发应用程序时遇到了这种情况。这意味着此函数的第一个参数-
$albumTable
-必须是
albumTable
类的实例或从中继承的类

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

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


这很有用,因此您不必检查收到的变量/对象的类型以利用其函数和属性。

您正在展示的代码是通过setter方法进行依赖项注入的示例。setter被传递给AlbumTable的一个实例,并将该实例分配给一个类字段

您的方法只传递了一个参数:
$albumTable

参数前的
AlbumTable
为,确保只能将AlbumTable的实例或派生类传递给setter

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