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).
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
shmop_close — Close shared memory block
This function has been DEPRECATED as of PHP 8.0.0. Relying on this function is highly discouraged.
Note:
This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
shmop_close() is used to close a shared memory block.
No value is returned.
Version | Description |
---|---|
8.0.0 |
shmop expects a Shmop
instance now; previously, a resource was expected.
|
Example #1 Closing shared memory block
<?php
shmop_close($shm_id);
?>
This example will close shared memory block identified by $shm_id
.
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).
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.