array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.msg-send.php', 1 => 'msg_send', ), 'up' => array ( 0 => 'ref.sem.php', 1 => 'Функции семафоров', ), 'prev' => array ( 0 => 'function.msg-remove-queue.php', 1 => 'msg_remove_queue', ), 'next' => array ( 0 => 'function.msg-set-queue.php', 1 => 'msg_set_queue', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/sem/functions/msg-send.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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).
|