Objet de clone profond PHP

Le scénario: récupérer un modèle de courrier électronique à partir de la base de données, et la boucle à travers une liste de destinataires des données, la personnalisation de l'e-mail pour chaque.

Mon modèle d'e-mail est retourné comme un objet imbriqué. Il peut paraître un peu comme ceci:

object(stdClass) {
    ["title"] => "Event Notification"
    ["sender"] => "[email protected]"
    ["content"] => object(stdClass) {
        ["salutation"] => "Dear %%firstname%%,"
        ["body"] => "Lorem ipsum %%recipient_email%% etc etc..."
    }
}

Puis-je faire une boucle par les destinataires, le passage de cette $email objet à personnaliser() fonction:

foreach( $recipients as $recipient ){
    $email_body = personalise( $email, $recipient );
    //send_email();
}

La question, bien sûr, c'est que j'ai besoin de passer le $email objet par référence, pour remplacer la personnalisation des balises - mais si je fais ça, l'objet d'origine est modifié et ne contient plus la personnalisation des balises.

Que je comprends, clone de ne pas m'aider ici, car il ne fera que créer une copie superficielle: le contenu de l'objet à l'intérieur de l'objet du courriel ne sera pas cloné.

J'ai lu à propos de contourner cela avec unserialize(serialize($obj)) - mais tout ce que j'ai lu dit que c'est un gros gain de performance.

Donc, deux enfin arriver à mes deux questions:

  1. Est unserialize(serialize($obj)) une solution raisonnable ici?
  2. Ou vais-je au sujet de toute cette chose de mal? Est-il un autre moyen que je
    peut générer personnalisé copie de cet e-mail de l'objet?

source d'informationauteur Wintermute