Exemple #1
0
 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;
 }