(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() は、queue
で指定したメッセージキューに対して message_type
で指定した型 (0 より大きい数値である必要があります) のメッセージ
message を送信します。
queuemessage_typemessage注意:
serializeがfalseに設定された場合、 この値は string, int, float または bool のいずれかでなければなりません。 それら以外の場合、警告が発生します。
serializeserialize は、
message を送信する方法を制御します。
serialize のデフォルト値は true で、
この場合 message が送信される前に
セッションモジュールと同じ方法でシリアライズされます。
これにより、配列やオブジェクトのような複雑な形式のデータを
他の PHP スクリプトに送信することが可能となります。
また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX
互換クライアントに対して同じことが可能となります。
blockingblocking
を false に設定することでブロックモードではなくすることが可能で、
この場合、もしキューの空き容量よりも大きなメッセージを送信すると
msg_send() はすぐに false を返します。
また、オプションのパラメータ error_code
を MSG_EAGAIN に設定すると、
少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。
error_code
成功した場合に true を、失敗した場合に false を返します。
処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。
msg_lspid には呼び出し元のプロセス ID が
設定され、msg_qnum が 1 増加し、
msg_stime が現在の時刻に設定されます。
| バージョン | 説明 |
|---|---|
| 8.0.0 |
引数 queue は、
SysvMessageQueue のインスタンスを期待するようになりました。
これより前のバージョンでは、リソースが期待されていました。
|