msg_send
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
msg_send — Надіслати повідомлення до черги повідомлень
Опис
msg_send( SysvMessageQueue $queue, int $message_type, string|int|float|bool $message, bool $serialize = true, bool $blocking = true, int &$error_code = null): bool
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). |
Дивіться також
- msg_remove_queue() - Видалення черги повідомлень
- msg_receive() - Отримання повідомлення з черги повідомлень
- msg_stat_queue() - Отримання інформації із структури даних черги повідомлень
- msg_set_queue() - Встановлення інформації у структурі даних черги повідомлень