msg_send メッセージキューにメッセージを送信する &reftitle.description; boolmsg_send SysvMessageQueuequeue intmessage_type stringintfloatboolmessage boolserialize&true; boolblocking&true; interror_code&null; msg_send は、queue で指定したメッセージキューに対して message_type で指定した型 (0 より大きい数値である必要があります) のメッセージ message を送信します。 &reftitle.parameters; 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_codeMSG_EAGAIN に設定すると、 少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。 error_code この関数の実行が失敗した場合、オプションのエラーコードがシステムの errno 変数の値に設定されます。 &reftitle.returnvalues; &return.success; 処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。 msg_lspid には呼び出し元のプロセス ID が 設定され、msg_qnum が 1 増加し、 msg_stime が現在の時刻に設定されます。 &reftitle.changelog; &Version; &Description; 8.0.0 引数 queue は、 SysvMessageQueue のインスタンスを期待するようになりました。 これより前のバージョンでは、リソースが期待されていました。 &reftitle.seealso; msg_remove_queue msg_receive msg_stat_queue msg_set_queue