Я хочу передать клон $this->user->settings
функционировать $this->updateUser
Таким образом, исходный массив не будет затронут.
private function updateSettings($field, $value)
{
echo gettype($this->user->settings); // array
$this->user->settings[$field] = $value;
$this->updateUser('settings', json_encode($this->user->settings));
echo gettype($this->user->settings); // string
}
Каков наилучший способ сделать это?
Вы можете просто сделать следующее:
private function updateSettings($field, $value)
{
$newArray = array_merge($this->user->settings, [$field => $value]);
$this->updateUser('settings', json_encode($newArray));
}
Btw, клонирование объектов это другое дело, и в этом случае это не так.
Других решений пока нет …