public function setAlbumTable(AlbumTable $albumTable)
{
$this->albumTable = $albumTable;
return $this;
}
我说的是第一个参数(它不是参数 btw)看起来像数据类型?它是什么 ?持续的 ?尝试在 zend 框架 2 中开发应用程序时遇到此问题
public function setAlbumTable(AlbumTable $albumTable)
{
$this->albumTable = $albumTable;
return $this;
}
我说的是第一个参数(它不是参数 btw)看起来像数据类型?它是什么 ?持续的 ?尝试在 zend 框架 2 中开发应用程序时遇到此问题
这是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
您展示的这段代码是通过 setter 方法进行依赖注入的示例。设置器被传递了一个 AlbumTable 的实例并将这个实例分配给一个类字段。
您的方法仅传递一个参数:$albumTable
.
AlbumTable
before 参数是一个类型提示,确保只有 AlbumTable的实例或派生类可以传递给 setter。
它强制实际参数 ($albumTable) 是 AlbumTable 类的实例。如果将其他任何内容传递给函数,PHP 将给出致命错误。
这很有用,因此您不必检查收到的变量/对象的类型即可使用它的功能和属性。