|
|
|
| Можно ли указывать типы параметров функции при объявлении функции? Например,
function f_search(array $arr, integer $num, $str)
{
// Тело функции
}
|
| |
|
|
|
|
|
|
|
для: Leklerk
(02.10.2009 в 22:59)
| | Нет, PHP - слаботипизированный язык, преобразование типа здесь осуществляется неявно (хотя явный вариант тоже возможен). В любом случае в определении функции вы не можете жестко задавать тип параметров. | |
|
|
|
|
|
|
|
для: Leklerk
(02.10.2009 в 22:59)
| | А смысл? | |
|
|
|
|
|
|
|
для: GeorgeIV
(02.10.2009 в 23:58)
| | Смысл имеется - например автоматически оградить содеримое функции от данных неправильного типа (например, не массива). Именно для этого сильно-типизированные языки имеют место быть. | |
|
|
|
|
|
|
|
для: cheops
(03.10.2009 в 00:02)
| | В отличие от многих других языков с нетипизированными переменными, PHP хранит всегда в переменной ВСЕ варианты типов, а не формирует их на лету. Поэтому указание типа в объявлении функции, мне кажется, слабая защита, лучше конкретно проверить пришедший тип в функции и/или использовать явное приведение переменной в теле. | |
|
|
|
|
|
|
|
для: GeorgeIV
(03.10.2009 в 00:08)
| | Конечно, поэтому и язык слаботипизированный, поэтому и тип не указывается. | |
|
|
|