PHP 8.4.3 Released!

shm_get_var

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

shm_get_varLiest eine Variable aus dem gemeinsamen Speicherbereich

Beschreibung

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

shm_get_var() liest die Variable mit dem Schlüssel key, aus dem angegebenen gemeinsamen Speicherbereich. Die Variable bleibt weiter im gemeinsamen Speicherbereich erhalten.

Parameter-Liste

shm

Ein gemeinsamer Speicherbereich, wie er von shm_attach() zurückgegeben wurde.

key

Der Variablenschlüssel.

Rückgabewerte

Gibt die Variable mit dem gegebenen Schlüssel zurück.

Changelog

Version Beschreibung
8.0.0 shm erwartet nun eine SysvSharedMemory-Instanz; vorher wurde eine resource erwartet.

Siehe auch

  • shm_has_var() - Check whether a specific entry exists
  • shm_put_var() - Erstellt oder aktualisiert eine Variable im gemeinsamen Speicherbereich

add a note

User Contributed Notes 1 note

up
2
ricardophp at yahoo dot com dot br
16 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