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

私は最初のパラメーター(パラメーターbtwではありません)について話しているのはデータ型のように見えますか?それは何ですか ?絶え間ない ?zendフレームワーク2でアプリを開発しようとすると、これに遭遇します

4

3 に答える 3

1

これは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
于 2012-03-10T12:59:04.760 に答える
1

表示しているコードは、setterメソッドによる依存性注入の例です。セッターにはAlbumTableのインスタンスが渡され、このインスタンスがクラスフィールドに割り当てられます。

メソッドには、次の1つのパラメーターのみが渡されます$albumTable

AlbumTableパラメータの前はタイプヒントであり、AlbumTableのインスタンスまたは派生クラスのみをセッターに渡すことができるようにします。

于 2012-03-10T13:20:45.083 に答える
0

これにより、実際のパラメーター($ albumTable)がAlbumTableクラスのインスタンスになります。他に何かが関数に渡されると、PHPは致命的なエラーを出します。

これは、その関数とプロパティを利用するために、受け取った変数/オブジェクトのタイプを確認する必要がないので便利です。

于 2012-03-10T13:04:36.163 に答える