警告:如果還有其他進程連接到記憶體區段,此函式將不會銷毀記憶體區段,但仍會返回 TRUE!
您必須在銷毀後再次嘗試存取該區段,以確保它確實被銷毀。
(PHP 4, PHP 5, PHP 7, PHP 8)
shm_remove — 從 Unix 系統中移除共享記憶體
看來您必須連接到 shm 區段才能移除它。
<?php
shm_remove($shm);
shm_detach($shm);
?>
有效,而
<?php
shm_detach($shm);
shm_remove($shm);
?>
產生「Warning: shm_remove(): The parameter is not a valid shm_identifier ...」
儘管在
int shm_remove(int shm_identifier);
和
shm_attach() 返回一個 **id**,可以用來存取 System V...
像這樣的程式碼片段
<?php
$key = 1234;
$shm=shm_attach($key);
// 做任何事...
shm_remove($shm);
?>
產生像這樣的錯誤
Warning: 2(這是 $shm 的值) 不是 /usr/cu/web/sema.php 第 44 行中現有的 SysV 共享記憶體鍵...
文件讓我有點困惑。我認為 shm_remove 會取得從 shm_attach 返回的 shm 控制代碼/id,而不是給 shm_attach 的鍵。所以,請改用
shm_remove($key);
這才是真正意圖的。