Helper.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * FormBuilder表单生成器
  4. * Author: xaboy
  5. * Github: https://github.com/xaboy/form-builder
  6. */
  7. namespace FormBuilder;
  8. use FormBuilder\exception\FormBuilderException;
  9. class Helper
  10. {
  11. public static function toType($var, $type = 'string')
  12. {
  13. if ($type === 'string') {
  14. return (string)$var;
  15. } else if ($type === 'array') {
  16. return is_array($var) ? $var : [$var];
  17. } else if ($type === 'boolean') {
  18. return (bool)$var;
  19. } else if ($type === 'float') {
  20. return (float)$var;
  21. } else if ($type === 'int') {
  22. return (int)$var;
  23. } else if ($type === 'null') {
  24. return null;
  25. }
  26. return $var;
  27. }
  28. public static function getVarType($var)
  29. {
  30. if (is_array($var)) return 'array';
  31. if (is_bool($var)) return 'boolean';
  32. if (is_float($var)) return 'float';
  33. if (is_int($var)) return 'integer';
  34. if (is_null($var)) return 'null';
  35. if (is_numeric($var)) return 'numeric';
  36. if (is_object($var)) return 'object';
  37. if (is_resource($var)) return 'resource';
  38. if (is_string($var)) return 'string';
  39. return "unknown type";
  40. }
  41. public static function verifyType($var, $verify, $title = '')
  42. {
  43. if (!is_array($verify)) $verify = [$verify];
  44. if (in_array('numeric', $verify)) {
  45. $verify[] = 'float';
  46. $verify[] = 'integer';
  47. }
  48. $type = self::getVarType($var);
  49. if (!in_array($type, $verify))
  50. throw new FormBuilderException($title . '类型需为' . implode(',', $verify));
  51. }
  52. public static function getDate($date)
  53. {
  54. return is_numeric($date) ? $date * 1000 : $date;
  55. }
  56. }