質問
public function setAlbumTable(AlbumTable $albumTable)
{
$this->albumTable = $albumTable;
return $this;
}
.
私は最初のパラメータについて話しています(パラメータBTWではありません)データ型のように見えますか?それは何ですか ?絶え間ない ?Zend Framework 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
. 他のヒント
あなたが示すコードの一部は、設定方法による依存噴射の例です。セッターはアルバムテーブルのインスタンスを渡し、このインスタンスをクラスフィールドに割り当てます。
あなたの方法は1つのパラメータのみに渡されます:$albumTable
。
Parameters以前のAlbumTable
はタイプHINT とAlbumTableまたは派生クラスのインスタンスのみを設定して、セッターに渡すことができます。
実際のパラメータ($ albumtable)をアルバムテーブルクラスのインスタンスに強制します。他のものが関数に渡されると、PHPは致命的なエラーを与えます。
これは便利で、それが機能とプロパティを利用するためにあなたが受け取った変数/オブジェクトの種類を確認する必要がないので、
所属していません StackOverflow