Frage

generasacodicetagpre.

Ich spreche über den ersten Parameter (es ist kein Parameter BTW) sieht aus wie Datatype?Was ist es ?konstant?Ich stoße darauf, wenn ich versuche, die App in Zend Framework 2 zu entwickeln

War es hilfreich?

Lösung

This is PHP's type hinting. It means that the first parameter to this function - $albumTable - must be an instance of the AlbumTable class or a class that inherits from it.

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

Andere Tipps

The piece of code you're showing is an example of dependency injection via setter method. The setter is passed an instance of AlbumTable and assignes this instance to a class field.

Your method is passed ONLY ONE parameter: $albumTable.

The AlbumTable before the parameter is a type hint and makes sure that only a instance of AlbumTable or a deriving class can be passed to the setter.

It forces the actual parameter ($albumTable) to be an instance of AlbumTable class. PHP will give a fatal error if anything else is passed to the function.

This is useful so you don't have to check what type of variable/object you received in order to make use of it's functions and properties.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top