(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.
queue
Die 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_type
In 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.
|