в конструкторе инициализирован массив $this->_values = []; и я также попробовал $this->_values = array(); теперь ему присвоено некоторое значение, которое я могу получить с помощью print_r() или dd(); поэтому значения есть, но во время выполнения кода одна строка просто выдает мне ошибку: «array_keys() ожидает, что параметр 1 будет массивом, с заданным нулем». теперь я попробовал все возможное, чтобы увидеть, действительно ли массив равен нулю, и это не так, как я могу это исправить. Я загружу функцию с ошибкой, а затем полный класс ниже. ПОЖАЛУЙСТА, ПОМОГИТЕ. И КСТАТИ ЭТА ОШИБКА ПРОИСХОДИТ ВО ВРЕМЯ ПОДМЕНЫ ПОДПИСКИ. Новые подписки — это нормально.
Код: Выделить всё
public function refreshFrom($values, $opts, $partial = false)
{
$this->_opts = Util\RequestOptions::parse($opts);
$this->_originalValues = self::deepCopy($values);
if ($values instanceof StripeObject) {
$values = $values->toArray();
}
// Wipe old state before setting new. This is useful for e.g. updating a
// customer, where there is no persistent card parameter. Mark those values
// which don't persist as transient
if ($partial) {
$removed = new Util\Set();
} else {
$removed = new Util\Set(\array_diff( \array_keys($this->_values) , \array_keys($values)));
}
foreach ($removed->toArray() as $k) {
unset($this->{$k});
}
$this->updateAttributes($values, $opts, false);
foreach ($values as $k => $v) {
$this->_transientValues->discard($k);
$this->_unsavedValues->discard($k);
}
}
Код: Выделить всё
} else {
$removed = new Util\Set(\array_diff( \array_keys($this->_values) , \array_keys($values)));
}
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/65448621/stripeobject-php-array-keys-expects-parameter-1-to-be-array-null-given[/url]