国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

279 lines
5.4KB

  1. <?php
  2. if (!defined('DEDEINC')) exit('dedebiz');
  3. class Condition
  4. {
  5. /**
  6. * Simple equals
  7. *
  8. * @param mixed $value
  9. * @param mixed $comparable
  10. *
  11. * @return bool
  12. */
  13. public static function equal($value, $comparable)
  14. {
  15. return $value == $comparable;
  16. }
  17. /**
  18. * Strict equals
  19. *
  20. * @param mixed $value
  21. * @param mixed $comparable
  22. *
  23. * @return bool
  24. */
  25. public static function strictEqual($value, $comparable)
  26. {
  27. return $value === $comparable;
  28. }
  29. /**
  30. * Simple not equal
  31. *
  32. * @param mixed $value
  33. * @param mixed $comparable
  34. *
  35. * @return bool
  36. */
  37. public static function notEqual($value, $comparable)
  38. {
  39. return $value != $comparable;
  40. }
  41. /**
  42. * Strict not equal
  43. *
  44. * @param mixed $value
  45. * @param mixed $comparable
  46. *
  47. * @return bool
  48. */
  49. public static function strictNotEqual($value, $comparable)
  50. {
  51. return $value !== $comparable;
  52. }
  53. /**
  54. * Strict greater than
  55. *
  56. * @param mixed $value
  57. * @param mixed $comparable
  58. *
  59. * @return bool
  60. */
  61. public static function greaterThan($value, $comparable)
  62. {
  63. return $value > $comparable;
  64. }
  65. /**
  66. * Strict less than
  67. *
  68. * @param mixed $value
  69. * @param mixed $comparable
  70. *
  71. * @return bool
  72. */
  73. public static function lessThan($value, $comparable)
  74. {
  75. return $value < $comparable;
  76. }
  77. /**
  78. * Greater or equal
  79. *
  80. * @param mixed $value
  81. * @param mixed $comparable
  82. *
  83. * @return bool
  84. */
  85. public static function greaterThanOrEqual($value, $comparable)
  86. {
  87. return $value >= $comparable;
  88. }
  89. /**
  90. * Less or equal
  91. *
  92. * @param mixed $value
  93. * @param mixed $comparable
  94. *
  95. * @return bool
  96. */
  97. public static function lessThanOrEqual($value, $comparable)
  98. {
  99. return $value <= $comparable;
  100. }
  101. /**
  102. * In array
  103. *
  104. * @param mixed $value
  105. * @param array $comparable
  106. *
  107. * @return bool
  108. */
  109. public static function in($value, $comparable)
  110. {
  111. return (is_array($comparable) && in_array($value, $comparable));
  112. }
  113. /**
  114. * Not in array
  115. *
  116. * @param mixed $value
  117. * @param array $comparable
  118. *
  119. * @return bool
  120. */
  121. public static function notIn($value, $comparable)
  122. {
  123. return (is_array($comparable) && !in_array($value, $comparable));
  124. }
  125. /**
  126. * Is null equal
  127. *
  128. * @param mixed $value
  129. *
  130. * @return bool
  131. */
  132. public static function isNull($value, $comparable)
  133. {
  134. return is_null($value);
  135. }
  136. /**
  137. * Is not null equal
  138. *
  139. * @param mixed $value
  140. *
  141. * @return bool
  142. */
  143. public static function isNotNull($value, $comparable)
  144. {
  145. return !is_null($value);
  146. }
  147. /**
  148. * Start With
  149. *
  150. * @param mixed $value
  151. * @param string $comparable
  152. *
  153. * @return bool
  154. */
  155. public static function startWith($value, $comparable)
  156. {
  157. if (is_array($comparable) || is_array($value) || is_object($comparable) || is_object($value)) {
  158. return false;
  159. }
  160. if (preg_match("/^$comparable/", $value)) {
  161. return true;
  162. }
  163. return false;
  164. }
  165. /**
  166. * End with
  167. *
  168. * @param mixed $value
  169. * @param string $comparable
  170. *
  171. * @return bool
  172. */
  173. public static function endWith($value, $comparable)
  174. {
  175. if (is_array($comparable) || is_array($value) || is_object($comparable) || is_object($value)) {
  176. return false;
  177. }
  178. if (preg_match("/$comparable$/", $value)) {
  179. return true;
  180. }
  181. return false;
  182. }
  183. /**
  184. * Match with pattern
  185. *
  186. * @param mixed $value
  187. * @param string $comparable
  188. *
  189. * @return bool
  190. */
  191. public static function match($value, $comparable)
  192. {
  193. if (is_array($comparable) || is_array($value) || is_object($comparable) || is_object($value)) {
  194. return false;
  195. }
  196. $comparable = trim($comparable);
  197. if (preg_match("/^$comparable$/", $value)) {
  198. return true;
  199. }
  200. return false;
  201. }
  202. /**
  203. * Contains substring in string
  204. *
  205. * @param string $value
  206. * @param string $comparable
  207. *
  208. * @return bool
  209. */
  210. public static function contains($value, $comparable)
  211. {
  212. return (strpos($value, $comparable) !== false);
  213. }
  214. /**
  215. * Dates equal
  216. *
  217. * @param string $value
  218. * @param string $comparable
  219. *
  220. * @return bool
  221. */
  222. public static function dateEqual($value, $comparable, $format = 'Y-m-d')
  223. {
  224. $date = date($format, strtotime($value));
  225. return $date == $comparable;
  226. }
  227. /**
  228. * Months equal
  229. *
  230. * @param string $value
  231. * @param string $comparable
  232. *
  233. * @return bool
  234. */
  235. public static function monthEqual($value, $comparable)
  236. {
  237. $month = date('m', strtotime($value));
  238. return $month == $comparable;
  239. }
  240. /**
  241. * Years equal
  242. *
  243. * @param string $value
  244. * @param string $comparable
  245. *
  246. * @return bool
  247. */
  248. public static function yearEqual($value, $comparable)
  249. {
  250. $year = date('Y', strtotime($value));
  251. return $year == $comparable;
  252. }
  253. }