2017-10-08 5 views
0

Je veux passer un clone de $this->user->settings pour fonctionner $this->updateUser, donc le tableau d'origine ne sera pas affecté.PHP - Clonage d'objet

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 
} 

Quelle est la meilleure façon d'y parvenir?

+0

utilisez le mot-clé clone pour cloner l'objet si vous avez besoin d'un clonage d'objet –

+0

mot clé clone arrête le script pour une raison quelconque –

Répondre

0

Vous pouvez simplement faire ce qui suit:

private function updateSettings($field, $value) 
{ 
    $newArray = array_merge($this->user->settings, [$field => $value]); 

    $this->updateUser('settings', json_encode($newArray)); 
} 

BTW, object cloning est une autre chose et dans ce cas, il est pas.