ParamSwitcher.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: JZ
  5. * Date: 2019/7/18
  6. * Time: 18:00
  7. */
  8. class ParamSwitcher implements JsonSerializable {
  9. private $params;
  10. public function jsonSerialize() {
  11. $data = [];
  12. foreach ($this as $key=>$val){
  13. if ($val !== null) $data[$key] = $val;
  14. }
  15. return $data;
  16. }
  17. /**
  18. * ParamSwitcher constructor.
  19. * @param $params
  20. */
  21. public function __construct($params) {
  22. $this->params = $params;
  23. }
  24. public static function instanceParam(){
  25. $params = array();
  26. return new ParamSwitcher($params);
  27. }
  28. public function addParam($name, $value){
  29. $params = $this->params;
  30. if(is_array($params)){
  31. $params[$name] = $value;
  32. }
  33. $this->params = $params;
  34. }
  35. /**
  36. * @return mixed
  37. */
  38. public function getParams()
  39. {
  40. return $this->params;
  41. }
  42. /**
  43. * @param mixed $params
  44. */
  45. public function setParams($params)
  46. {
  47. $this->params = $params;
  48. }
  49. }