ObjectAccessTrait.php 883 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace AlibabaCloud\Client\Traits;
  3. /**
  4. * Trait ObjectAccessTrait
  5. *
  6. * @package AlibabaCloud\Client\Traits
  7. */
  8. trait ObjectAccessTrait
  9. {
  10. /**
  11. * @param string $name
  12. *
  13. * @return mixed|null
  14. */
  15. public function __get($name)
  16. {
  17. if (!isset($this->data[$name])) {
  18. return null;
  19. }
  20. return \json_decode(\json_encode($this->data))->$name;
  21. }
  22. /**
  23. * @param string $name
  24. * @param mixed $value
  25. */
  26. public function __set($name, $value)
  27. {
  28. $this->data[$name] = $value;
  29. }
  30. /**
  31. * @param string $name
  32. *
  33. * @return bool
  34. */
  35. public function __isset($name)
  36. {
  37. return isset($this->data[$name]);
  38. }
  39. /**
  40. * @param $name
  41. *
  42. * @return void
  43. */
  44. public function __unset($name)
  45. {
  46. unset($this->data[$name]);
  47. }
  48. }