99/**
1010 * Расширенные данные по транзакции
1111 */
12- #[AllowDynamicProperties]
1312class Details
1413{
1514 /** @var string|SubmerchantReceipt[]|null */
1615 private $ receipts = null ;
1716
17+ /** @var array динамические свойства */
18+ private array $ valuesContainer = [];
19+
1820 public function __set (string $ name , $ value ): void {
19- $ this ->{ $ name} = $ value ;
21+ $ this ->valuesContainer [ $ name] = $ value ;
2022 }
2123
2224 /**
25+ * Установка динамических свойств по ключу
2326 * @param mixed $keys
2427 * @param mixed $values
2528 * @return self
@@ -28,18 +31,23 @@ public function set($keys, $values) : self
2831 {
2932 if (is_array ($ keys ) && is_array ($ values )) {
3033 foreach ($ keys as $ i => $ key ) {
31- $ this ->$ { $ key} = $ values [$ i ];
34+ $ this ->valuesContainer [ $ key] = $ values [$ i ];
3235 }
3336 } elseif (!is_array ($ keys ) && !is_array ($ values )) {
34- $ this ->$ { $ keys} = $ values ;
37+ $ this ->valuesContainer [ $ keys] = $ values ;
3538 }
3639
3740 return $ this ;
3841 }
3942
43+ /**
44+ * Запрос динамических свойств по ключу
45+ * @param $key
46+ * @return mixed|null
47+ */
4048 public function get ($ key )
4149 {
42- return @ $ this ->{ $ key} ?? null ;
50+ return $ this ->valuesContainer [ $ key] ?? null ;
4351 }
4452
4553 /**
@@ -97,7 +105,7 @@ public function toArray(): array
97105 }
98106 }
99107
100- foreach ($ this as $ key => $ value ) {
108+ foreach ($ this -> valuesContainer as $ key => $ value ) {
101109 if ($ key === 'receipts ' ) {
102110 break ;
103111 }
0 commit comments