ConFoo 2025

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_closeClose shared memory block

警告

本函数已自 PHP 8.0.0 起被废弃。强烈建议不要依赖本函数。

说明

#[\Deprecated]
shmop_close(Shmop $shmop): void

注意:

此函数无效。在 PHP 8.0.0 之前,用于关闭资源。

shmop_close() is used to close a shared memory block.

参数

shmop

The shared memory block resource created by shmop_open()

返回值

没有返回值。

更新日志

版本 说明
8.0.0 This function has been deprecated, as this function has no effect anymore.
8.0.0 shmop expects a Shmop instance now; previously, a resource was expected.

示例

示例 #1 Closing shared memory block

<?php
shmop_close
($shm_id);
?>

This example will close shared memory block identified by $shm_id.

参见

添加备注

用户贡献的备注 2 notes

up
3
slavapl at mailandnews dot com
23 years ago
shmop_close doesn't delete the memory segment, it just detaches from it.

If you have created the block and need to delete it you must call shmop_delete **BEFORE** calling shmop_close (for reasons outlined in shmop_delete help page notes).
up
1
shortboi
3 years ago
As explained on this page, PHP 8.0.0 expects a Shmop instance instead of a resource. According to bug #81098 this change means that the Shmop closes itself when the script completes so there is no need to close it with shmop_close.

Using function_exists('shmop_close') will return true but calling shmop_close will throw a deprecation error.

The documentation explains the change in 8.0.0 expects the expected argument changed without mentioning it'll just throw a deprecation error.
To Top