Как читать определения функции (прототип)

Документация к каждой функции в руководстве была написана с учётом быстрого обращения к этой документации. Зная как правильно читать и понимать текст, вам будет намного проще изучать PHP. Вместо того, чтобы полагаться на примеры или копирование/вставку, нужно просто понять как читать определения функции (прототипы). Давайте начнём:

Замечание: Предпосылки: Базовое понимание типов

Хотя PHP и является слабо типизированным языком, важно иметь базовое представление о типах, так как они играют большую роль в PHP.

Определения функций показывают нам какого типа значения они возвращают. Для первого примера возьмём определение функции strlen():

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Возвращает длину строки

Описание
strlen ( string $string ) : int

Возвращает длину переданной строки.

Объяснение определения функции
Часть Описание
strlen Имя функции.
(PHP 4, PHP 5, PHP 7) strlen() была во всех версиях PHP 4, 5 и PHP 7
( string $string ) Первый (и в данном случае единственный) параметр/аргумент этой функции называется string, а его типом является строка (string).
int Тип возвращаемого этой функцией значения, в данном случае число (int) (так как длина строки измеряется числом).

Можно переписать вышеуказанное определение функции в более общем виде:

      имя функции    ( тип параметра   имя параметра ) : возвращаемый тип

Много функций принимают несколько параметров, например, in_array(). Её прототип выглядит так:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

Что это означает? in_array() возвращает boolean, true в случае успешного выполнения (если needle был найден в haystack) или false в случае возникновения ошибки (если needle не был найден в haystack). Первый параметр называется needle ("иголка") и может принимать много различных типов, поэтому он называется "смешанным". Этот смешанный needle (то, что мы ищем) может быть любым скалярным значением (string, integer, или float), либо массивом. haystack ("стог сена", массив, в котором мы ищем) - это второй параметр. Третий необязательный параметр называется strict ("строго"). Все необязательные параметры имеют значения по умолчанию; если значение по умолчанию неизвестно, оно отображается как ? Руководство указывает, что параметр strict по умолчанию принимает значение boolean false. Смотрите отдельную страницу документации по каждой функции для более подробной информации по их работе.

Символ & (амперсанд), поставленный перед параметром функции позволяет передавать значение этого параметра по ссылке:

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

В данном примере мы можем использовать третий опциональный параметр &$matches, который будет передан по ссылке.

Есть также функции с более сложной информацией о версиях PHP. Возьмём для примера html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

Это означает, что функция появилась в официальных версиях языка только с выхода PHP 4.3.0.

add a note add a note

User Contributed Notes 1 note

up
5
php dot devel at homelinkcs dot com
19 years ago
More specifically, an ampersand (&) prepended to an argument name means that the argument will be passed by reference (http://www.php.net/manual/en/language.references.pass.php).
To Top