PHP 8.4.22 Released!

shm_get_var

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

shm_get_varLit une variable dans la mémoire partagée

Description

function shm_get_var(SysvSharedMemory $shm, int $key): mixed

shm_get_var() retourne la variable repérée par key, dans le segment de mémoire partagée identifié par shm. La variable est toujours présente en mémoire partagée.

Liste de paramètres

shm
Un segment de mémoire partagée obtenu depuis shm_attach().
key
La clé de la variable.

Valeurs de retour

Retourne la variable correspondant à la clé donnée.

Historique

Version Description
8.0.0 shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

Voir aussi

  • shm_has_var() - Vérifie si une variable existe en mémoire partagée
  • shm_put_var() - Insère ou modifie une variable de la mémoire partagée
add a note

User Contributed Notes 1 note

up
2
ricardophp at yahoo dot com dot br
17 years ago
A fully functional sample  ...

<?php
echo "<PRE>\n";

define("FOPEN_RESOURCE", 1);

$shm_id = shm_attach(FOPEN_RESOURCE);
if ($shm_id === false) {
    exit("Fail to attach shared memory.\n");
}

$fopen_resource = fopen("/tmp/phpSharedMemory.bin", "w");

$a =  array("Teste1", 1);
if (!shm_put_var($shm_id, $a, $a)) {
    exit("Failed to put var 1 in shared memory $shm_id.\n");
}

echo "F: ".$a[0].":".$a[1]."\n";
$pid = pcntl_fork();

if($pid == -1) {
  die("could not fork\n");
}
else if ($pid) {
    $a = array("Teste2", 3);
    if (!shm_put_var($shm_id, $a, $a)) {
        exit("Failed to put var 1 in shared memory $shm_id.\n");
    }
    echo "P1: ".$a[0].":".$a[1]."\n";
} else {
    sleep(2);
    $a = shm_get_var($shm_id, $a);
    echo "P2: ".$a[0].":".$a[1]."\n";
}
pcntl_wait($status);
exit();
?>
To Top