2013-10-03 43 views
0

在PHP中,我嘗試通過IPC發送消息,並立即檢查消息是否在隊列中。下面是一個試驗碼:爲什麼PHP ipc消息不在隊列中?

$rQueue = msg_get_queue(12345, 0660); 
msg_send($rQueue, 0, "test", FALSE, FALSE); 
print_r(msg_stat_queue($rQueue)); 

打印出從給定的隊列中的統計數據,指示msg_qnum=0,即沒有消息是在隊列中。預期的行爲是在隊列中至少看到一條消息。哪裏有問題?

回答

1

尋找在它說manual

bool msg_send (resource $queue , int $msgtype , mixed $message [, bool $serialize = true [, bool $blocking = true [, int &$errorcode ]]]) 

msg_send()發送類型MSGTYPE的消息(它必須大於 0)至由隊列中指定的消息隊列。

因此,將第二個參數從0更改爲1即可解決問題。

請看看error_reporting()函數。當我運行你的代碼,PHP表示用警告的問題:

PHP的警告:msg_send()的msgsnd失敗:無效的參數

+0

哦,我明白了,我在doc錯過了這個。非常感謝,你救了我的一天... – Alex