shm_get_var

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

shm_get_var — Lit 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. Si la clé n'existe pas, un E_WARNING est émis et false est retourné.

Erreurs / Exceptions

LÚve une Error si shm a déjà été détaché avec shm_detach().

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 ¶
18 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();
?>