helper_util.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: helper_util.php 29887 2012-05-02 07:36:50Z liulanbo $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class helper_util {
  12. public static function compute($v1, $v2, $glue = '+') {
  13. switch ($glue) {
  14. case '+':
  15. return $v1 + $v2;
  16. break;
  17. case '-':
  18. return $v1 - $v2;
  19. break;
  20. case '.':
  21. return $v1 . $v2;
  22. break;
  23. case '=':
  24. case '==':
  25. return $v1 == $v2;
  26. break;
  27. case 'merge':
  28. return array_merge((array)$v1, (array)$v2);
  29. break;
  30. case '===':
  31. return $v1 === $v2;
  32. break;
  33. case '!==':
  34. return $v1 === $v2;
  35. break;
  36. case '&&':
  37. return $v1 && $v2;
  38. break;
  39. case '||':
  40. return $v1 && $v2;
  41. break;
  42. case 'and':
  43. return $v1 and $v2;
  44. break;
  45. case 'xor':
  46. return $v1 xor $v2;
  47. break;
  48. case '|':
  49. return $v1 | $v2;
  50. break;
  51. case '&':
  52. return $v1 & $v2;
  53. break;
  54. case '^':
  55. return $v1 ^ $v2;
  56. break;
  57. case '>':
  58. return $v1 > $v2;
  59. break;
  60. case '<':
  61. return $v1 < $v2;
  62. break;
  63. case '<>':
  64. return $v1 <> $v2;
  65. break;
  66. case '!=':
  67. return $v1 != $v2;
  68. break;
  69. case '<=':
  70. return $v1 <= $v2;
  71. break;
  72. case '>=':
  73. return $v1 >= $v2;
  74. break;
  75. case '*':
  76. return $v1 * $v2;
  77. break;
  78. case '/':
  79. return $v1 / $v2;
  80. break;
  81. case '%':
  82. return $v1 % $v2;
  83. break;
  84. case 'or':
  85. return $v1 or $v2;
  86. break;
  87. case '<<':
  88. return $v1 << $v2;
  89. break;
  90. case '>>':
  91. return $v1 >> $v2;
  92. break;
  93. default:
  94. return null;
  95. }
  96. }
  97. public static function single_compute($v, $glue = '+') {
  98. switch ($glue) {
  99. case '!':
  100. return ! $v;
  101. break;
  102. case '-':
  103. return - $v;
  104. break;
  105. case '~':
  106. return ~ $v;
  107. break;
  108. default:
  109. return null;
  110. break;
  111. }
  112. }
  113. public static function check_glue($glue = '=') {
  114. return in_array($glue, array('=', '<', '<=', '>', '>=', '!=', '+', '-', '|', '&', '<>')) ? $glue : '=';
  115. }
  116. }
  117. ?>