Edycja: Tak, można wpisać-podpowiedź z tablicami, więc edytowane moją odpowiedź i odpowiednio zmienione.
To, co chcesz zrobić, to type-hinting. Nie można wpisywać podstawowych typów danych, takich jak int
, string
, bool
. Można wpisać-podpowiedź z array
lub obiektów i interfejsów:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
Wywołanie example_hinted1(5)
PHP wygeneruje błąd krytyczny (nie wyjątek), ale nazywając ją przechodzącą tablicę jest całkowicie w porządku.
Jeśli chcesz mieć pewność, że jakiś argument funkcji jest od typu podstawowego można symulować ten problem z kodem wewnątrz funkcji:
function example($number) {
if (!is_int($number) {
throw new Exception("You must pass an integer to ".__FUNCTION__."()");
}
// rest of your function
}
Tak, te fragmenty będą pracować:
example(1);
$b = 5 + 8;
example($b);
natomiast będzie to wyjątek:
example('foo');
example(array(5, 6));
example(new User());
nie dla wszystkich, ale dla tablicy i typów (klas/interfejsów) . Znajdziesz to udokumentowane w instrukcji. Najpierw odrób swoją pracę domową i zajrzyj tam, a odpowiedź na twoje pytanie będzie o wiele bardziej szczegółowa. – hakre
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/#functions – maialithar