(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
msg_receive — Liest eine Nachricht aus einer Nachrichten-Warteschlange aus
$queue,$desired_message_type,&$received_message_type,$max_message_size,&$message,$unserialize = true,$flags = 0,&$error_code = null
msg_receive() liest die erste Nachricht vom Typ
desired_message_type aus der durch
queue angegeben Warteschlange aus.
queueDie Nachrichten-Warteschlange.
desired_message_type
Wenn desired_message_type gleich 0 ist, wird die
erste Nachricht aus der Warteschlange zurückgegeben. Wenn
desired_message_type größer als 0 ist, wird die
erste Nachricht genau diesen Typs zurückgegeben. Wenn
desired_message_type kleiner als 0 ist, wird die
erste Nachricht kleiner oder gleich dem absoluten Wert von
desired_message_type zurückgegeben. Wenn keine
passende Nachricht existiert, blockiert diese Funktion solange, bis
eine passende Nachricht verfügbar ist. Durch das Setzen des Flags
MSG_IPC_NOWAIT im Parameter
flags kann das blockierende Verhalten verhindert
werden.
received_message_typeIn diesem Parameter wird der Typ der empfangenen Nachricht gespeichert.
max_message_size
Die maximale Größe der zu akzeptierenden Nachricht wird durch
max_message_size angegeben; Wenn die Nachricht
in der Nachrichten-Warteschlange größer ist, als dieser Wert, schlägt
die Funktion fehl (es sei denn, es wird das entsprechende Flag im
Parameter flags gesetzt).
message
Die empfangene Nachricht wird in message
gespeichert, es sei denn es tritt ein Fehler beim Empfang auf.
unserialize
Wenn dieser Wert auf true gesetzt wird, wird die Nachricht behandelt,
als wäre sie mit demselben Mechanismus serialisiert worden, wie das
Session-Modul. Die Nachricht wird deserialisiert und zurückgegeben.
Dies erlaubt einen einfachen Empfang von Arrays und komplexen
Objektstrukturen von anderen PHP-Skripten. Wenn Sie den WDDX-Serializer
verwenden, erlaubt es den Empfang von einer WDDX-kompatiblen Quelle.
Wenn unserialize false ist, wird die Nachricht
als binärsicherer String zurückgegeben.
flags
Der optionale Parameter flags erlaubt die
Weitergabe von Flags an den low-level msgrcv-Systemaufruf. Der
Standardwert liegt bei 0, aber es können einer oder mehrere der
folgenden Werte übergeben werden (AND- oder OR-verknüpft).
MSG_IPC_NOWAIT |
Wenn kein Wert des übergebenen Typs
desired_message_type in der Warteschlange
vorhanden ist, gibt die Funktion sofort zurück, statt zu warten.
Die Funktion schlägt fehl und gibt den Integerwert entsprechend an
MSG_ENOMSG zurück.
|
MSG_EXCEPT |
Dieses Flag sorgt in Kombination mit einem
desired_message_type größer als 0 dafür,
dass die Funktion die erste Nachricht zurück gbit, die nicht
gleich desired_message_type ist.
|
MSG_NOERROR |
Wenn die Nachricht länger als
max_message_size ist, wird durch Setzen
diese Flags die Nachricht auf
max_message_size gekürzt, und die Funktion
signalisiert keinen Fehler.
|
error_code
Wenn die Funktion fehlschlägt, wird der optionale
error_code auf den Wert der
System-errno-Variable gesetzt.
Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.
Bei erfolgreicher Ausführung wird die Datenstruktur der
Nachrichten-Warteschlange folgendermaßen aktualisiert:
msg_lrpid wird auf die Prozess-ID des aufrufenden
Prozesses gesetzt, msg_qnum wird um 1 dekrementiert, und
msg_rtime wird auf die aktuelle Zeit gesetzt.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
queue erwartet nun eine
SysvMessageQueue-Instanz; vorher wurde eine
resource erwartet.
|