Edit: Да, вы можете ввести-подсказка с массивами, поэтому отредактировал мой ответ, и соответствующим образом изменить.
Что вы хотите сделать, называется type-hinting. Вы не можете вводить основные типы данных подсказки, такие как int
, string
, bool
. Вы можете ввести-подсказку с array
или объектов и интерфейсов:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
Вызов example_hinted1(5)
будет генерировать фатальную ошибку PHP (не исключение), но называть его передачи массива полностью нормально.
Если вы должны быть уверены в том, что некоторые аргументы функции от базового типа вы можете смоделировать такое поведение с кодом внутри функции:
function example($number) {
if (!is_int($number) {
throw new Exception("You must pass an integer to ".__FUNCTION__."()");
}
// rest of your function
}
Таким образом, эти фрагменты будут работать:
example(1);
$b = 5 + 8;
example($b);
в то время как они будут бросать исключение:
example('foo');
example(array(5, 6));
example(new User());
Не для всех, но для массивов и типов (классов/интерфейсов) , Вы обнаружите, что это описано в руководстве. Сначала сделайте домашнее задание и посмотрите там, он отвечает на ваш вопрос гораздо более подробно. – hakre
http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/#functions – maialithar