Updated PHP Windows builds for Brotli security fix

shm_get_var

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

shm_get_var — Lee una variable en la memoria compartida

Descripción

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

shm_get_var() devuelve la variable identificada por key, en el segmento de memoria compartida identificado por shm. La variable siempre está presente en la memoria compartida.

Parámetros

shm

Un segmento de memoria compartida obtenido desde shm_attach().

key

La clave de la variable.

Valores devueltos

Devuelve la variable correspondiente a la clave dada. Si la clave no existe, se emite un E_WARNING y se devuelve false.

Errores/Excepciones

Lanza un Error si shm ya ha sido liberado con shm_detach().

Historial de cambios

Versión Descripción
8.0.0 shm ahora requiere una instancia de SysvSharedMemory en lugar de un resource.

Véase también

  • shm_has_var() - Verifica si una variable existe en memoria compartida
  • shm_put_var() - Inserta o modifica una variable en la memoria compartida
+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();
?>
To Top