Пример #1
0
 public static function serialize($var, $force_obj = false)
 {
     if ($force_obj) {
         return JSHelper::cast_obj($var);
     } else {
         return JSHelper::cast($var);
     }
 }
Пример #2
0
 public static function cast($var)
 {
     if ($var === '0') {
         return '0';
     } else {
         if (is_object($var) && $var instanceof \ZPHP\Dict) {
             return self::cast($var->to_array());
         } else {
             if (is_object($var) && $var instanceof \Illuminate\Database\Eloquent\Model) {
                 return self::cast($var->toArray());
             } else {
                 if ((is_double($var) || is_float($var) || is_int($var) || is_integer($var)) && stripos((string) (double) $var, 'e') === false) {
                     return JSHelper::cast_number($var);
                 } elseif (is_bool($var)) {
                     return JSHelper::cast_bool($var);
                 } elseif (is_null($var)) {
                     return JSHelper::cast_null();
                 } elseif (is_object($var) && method_exists($var, '__toJSON')) {
                     return JSHelper::cast($var->__toJSON());
                 } elseif (is_numeric($var) && strpos($var, '0') !== 0 && stripos((string) (double) $var, 'e') === false) {
                     return JSHelper::cast_number($var);
                 } elseif (is_array($var)) {
                     $is_numeric = true;
                     $array_keys = array_keys($var);
                     foreach ($array_keys as $index => $array_key) {
                         if ($array_key !== $index) {
                             $is_numeric = false;
                             break;
                         }
                     }
                     if ($is_numeric) {
                         return JSHelper::cast_array($var);
                     } else {
                         return JSHelper::cast_obj($var);
                     }
                 } else {
                     if (($var = (string) $var) && ($trimmed_var = trim($var)) && strpos($trimmed_var, '{') === 0 && strrpos($trimmed_var, '}') === strlen($trimmed_var) - 1) {
                         return substr($trimmed_var, 1, strlen($trimmed_var) - 2);
                     } else {
                         return JSHelper::cast_str($var);
                     }
                 }
             }
         }
     }
 }