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のインスタンスが渡され、このインスタンスがクラスフィールドに割り当てられます。
メソッドには、次の1つのパラメーターのみが渡されます$albumTable
。
AlbumTable
パラメータの前はタイプヒントであり、AlbumTableのインスタンスまたは派生クラスのみをセッターに渡すことができるようにします。
これにより、実際のパラメーター($ albumTable)がAlbumTableクラスのインスタンスになります。他に何かが関数に渡されると、PHPは致命的なエラーを出します。
これは、その関数とプロパティを利用するために、受け取った変数/オブジェクトのタイプを確認する必要がないので便利です。