-- -- $_SHARED test -- CREATE OR REPLACE FUNCTION php_set_shared (text, text) RETURNS text AS $$ global $_SHARED; $_SHARED[$args[0]] = $args[1]; return 'ok'; $$ LANGUAGE plphp; CREATE OR REPLACE FUNCTION php_get_shared (text) RETURNS text AS $$ global $_SHARED; return $_SHARED[$args[0]]; $$ LANGUAGE plphp; SELECT php_set_shared('first', 'hello plphp'); php_set_shared ---------------- ok (1 row) SELECT php_get_shared('first'); php_get_shared ---------------- hello plphp (1 row) SELECT php_get_shared('second'); WARNING: plphp: Undefined array key "second" php_get_shared ---------------- (1 row) SELECT php_set_shared('third', 'hello again!'); php_set_shared ---------------- ok (1 row) SELECT php_set_shared('third', 'say goodbye'); php_set_shared ---------------- ok (1 row) SELECT php_get_shared('third'); php_get_shared ---------------- say goodbye (1 row) CREATE OR REPLACE FUNCTION php_get_shared_ary (text) RETURNS text[] AS $$ global $_SHARED; return $_SHARED[$args[0]]; $$ LANGUAGE plphp; -- A text value that merely looks like an array stays a string: it comes -- back verbatim, and returning it from a text[] function is an error. SELECT php_set_shared('fourth', $${'hip', 'hooray'}$$); php_set_shared ---------------- ok (1 row) SELECT php_get_shared('fourth'); php_get_shared ------------------- {'hip', 'hooray'} (1 row) SELECT php_get_shared_ary('fourth'); ERROR: function declared to return array must return an array CONTEXT: PL/php function "php_get_shared_ary" -- A real array shared between calls CREATE OR REPLACE FUNCTION php_set_shared_ary (text, text[]) RETURNS text AS $$ global $_SHARED; $_SHARED[$args[0]] = $args[1]; return 'ok'; $$ LANGUAGE plphp; SELECT php_set_shared_ary('fifth', ARRAY['hip', 'hooray']); php_set_shared_ary -------------------- ok (1 row) SELECT php_get_shared_ary('fifth'); php_get_shared_ary -------------------- {hip,hooray} (1 row) SELECT (php_get_shared_ary('fifth'))[1]; php_get_shared_ary -------------------- hip (1 row) SELECT (php_get_shared_ary('fifth'))[1]; php_get_shared_ary -------------------- hip (1 row) SELECT (php_get_shared_ary('fifth'))[2]; php_get_shared_ary -------------------- hooray (1 row)