valerium
@valerium
Изобретая велосипед

Как ограничить тип параметров в функции?

В компилируемых языках вроде Паскаля или Си я, описывая функцию, могу (и должен) строго задать тип входных параметров. Максимум, где я могу развернуться - использовать перезагрузку функций, прописывая несколько раз функцию с одним названием, но разным набором параметров.

В PHP же динамическая типизация даёт большой простор для фантазии, но это палка о двух концах.

Например, я пишу класс и хочу в один из методов передать параметр сложной структуры, например, многомерный ассоциативный массив или же объект. В принципе, я могу написать метод, который будет предполагать, что ему передали корректный параметр, и работать с ним сходу. Могу даже написать проверку на соответствие струтуре (грубо говоря, isset($arrat['text_index'])) и выдать ошибку в Run Time.

А вот могу ли я заставить интрпретатор проверять корректность переданного параметра и выдавать ошибки вроде таких?
Parse error, unexpected T_STRING, expecting T_SOMETHING
  • Вопрос задан
  • 2983 просмотра
Решения вопроса 2
Sander_Li
@Sander_Li
Backend developer
Можно сделать так, указывая тип параметра при определении функции
function example(array $hello){
return $hello;
}
Ответ написан
alexdevid
@alexdevid
web-developer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы