(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
msg_send — Отправка сообщения в очередь сообщений
$queue
,$message_type
,$message
,$serialize
= true
,$blocking
= true
,&$error_code
= null
msg_send() отправляет сообщение message
с типом message_type
(должно быть больше 0) в очередь сообщений, указанную параметром queue
.
queue
Очередь сообщений.
message_type
Тип сообщения. Должно быть больше 0.
message
Тело сообщения.
Замечание:
Если
serialize
задано какfalse
, ДОЛЖНО быть типа: string, int, float или bool. Иначе будет выведено предупреждение.
serialize
Необязательный параметр serialize
управляет тем, как будет отправлено сообщение message
. По умолчанию serialize
имеет значение true
, что означает сериализацию message
перед отправкой тем же механизмом, который используется модулем обработки сессий. Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты, или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.
blocking
Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать прочтения сообщений другим процессом и освобождения места под отправляемое вами сообщение. Это называется блокировкой; вы можете отключить эту возможность, установив для blocking
значение false
, в этом случае msg_send() будет немедленно возвращать false
если сообщение слишком велико, и устанавливать необязательный параметр error_code
в значение MSG_EAGAIN
, что будет указывать вам на необходимость попробовать отправить сообщение несколько позже.
error_code
Если функция отработает неудачно, то этот код будет записан в системную переменную errno.
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
При успешном завершении структура данных очереди сообщений обновится следующим образом: msg_lspid
будет содержать идентификатор вызвавшего процесса, msg_qnum
увеличится на 1, а msg_stime
будет содержать текущее время.
Версия | Описание |
---|---|
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource). |