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