function &rt_var($namespace, $is_function = false, $force_create = false) { global $jsi_vars, $jsi_funcs; $result = null; if ($is_function) { $result =& jsrt::var_search($jsi_funcs, $namespace, true, false); if ($result) { return $result; // avoid function cleaning later, return now instead } } if ($namespace[0] != '__arguments') { $result =& jsrt::var_search($jsi_vars, array_merge(array('__arguments'), $namespace), $is_function, false); } if (!$result && $namespace[0] != 'this') { $result =& jsrt::var_search($jsi_vars, array_merge(array('this'), $namespace), $is_function, false); } if (!$result) { $result =& jsrt::var_search($jsi_vars, $namespace, $is_function, $force_create); } // function cleaning (make sure that user functions are sandboxed) if ($is_function && is_scalar($result)) { return 'jsrt_' . $result; } return $result; }