2016-10-31 10 views
11
public function getRecords(int $id): array; 

Witam, czy ktoś może mi powiedzieć, co tu robi dwukropek, w tej deklaracji metody wewnątrz interfejsu PHP? Czy to jest składnia PHP 7 i jaka jest tutaj tablica? Metoda musi zwrócić tablicę lub coś innego?Dwukropek po deklaracji metody?

Odpowiedz

11

Tak, nowa składnia wprowadzona w PHP 7 w celu zadeklarowania metody zwraca tablicę.

http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration

+0

Zauważ, że ';' nie jest nowe w PHP 7? Jest to potrzebne w przypadku każdej metody zdefiniowanej w interfejsie. Nowa składnia w pytaniu to ": array" dla deklaracji typu return. – nerdlyist

+0

tak, to jest poprawne – fire

+0

Może chcesz powiedzieć, że w odpowiedzi. – nerdlyist

8

Są to tak zwane Return Type declarations w PHP7. Wskazuje typ wartości zwracanej przez funkcję i nie jest ograniczony do tablic. Na przykład, można użyć float, int lub nawet własną klasę:

class MyClass { } 

function something(): MyClass { 
    return new MyClass(); 
} 

To nie są tylko do odczytu. Jeśli funkcja zwraca typ inny niż wskazany, wartość zostanie wymuszona na wskazany typ. Jeśli nie można go wymusić lub włączony jest tryb ścisły, zostanie zgłoszony błąd typu.

Powiązane problemy