public static function serialize($var, $force_obj = false) { if ($force_obj) { return JSHelper::cast_obj($var); } else { return JSHelper::cast($var); } }
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); } } } } } }