Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<sem_acquiresem_release>
^Semaphore FunctionsLast updated: Mon, 26 Oct 2026

sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_get — Get a semaphore id

Description

function sem_get(
    int $key,
    int $max_acquire = 1,
    int $permissions = 0666,
    bool $auto_release = true
): SysvSemaphore|false

sem_get() returns an id that can be used to access the System V semaphore with the given key.

A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

If key is 0, a new private semaphore is created for each call to sem_get().

Parameters

key

max_acquire

The number of processes that can acquire the semaphore simultaneously is set to max_acquire.

permissions

The semaphore permissions. Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

auto_release

Specifies if the semaphore should be automatically released on request shutdown.

Return Values

Returns a positive semaphore identifier on success, or false on error.

Changelog

Version Description
8.0.0 On success, this function returns a SysvSemaphore instance now; previously, a resource was returned.
8.0.0 The type of auto_release has been changed from int to bool.

Notes

Warning

When using sem_get() to access a semaphore created outside PHP, note that the semaphore must have been created as a set of 3 semaphores (for example, by specifying 3 as the nsems parameter when calling the C semget() function), otherwise PHP will be unable to access the semaphore.

Warning

If auto_release is enabled, the acquisitions held by a SysvSemaphore object are also released as soon as the object is freed, for example when the variable holding it is unset, overwritten or goes out of scope, not only on request shutdown. Keep a reference to the object for as long as the semaphore needs to stay acquired.

See Also


<sem_acquiresem_release>
^Semaphore FunctionsLast updated: Mon, 26 Oct 2026