PHP / Laravel: насколько глубоко копировать объект и изменять значение - PullRequest
0 голосов
/ 19 февраля 2019

Можно клонировать инстанцированный объект, изменить какое-либо значение и создать новый объект с этими измененными значениями, но без изменения значений исходного объекта.

Я знаю, что могу выполнить глубокое копирование, используякоманда unserialize(serialize($swift)), но я не нашел способа изменить значения.

Источник / оригинал:

Swift_Mailer {#777
  -transport: Swift_SmtpTransport {#779
    -handlers: array:1 [
      "AUTH" => Swift_Transport_Esmtp_AuthHandler {#783
        -authenticators: array:5 [
          0 => Swift_Transport_Esmtp_Auth_CramMd5Authenticator {#784}
          1 => Swift_Transport_Esmtp_Auth_LoginAuthenticator {#785}
          2 => Swift_Transport_Esmtp_Auth_PlainAuthenticator {#786}
          3 => Swift_Transport_Esmtp_Auth_NTLMAuthenticator {#787}
          4 => Swift_Transport_Esmtp_Auth_XOAuth2Authenticator {#788}
        ]
        -username: "myname@domain.local"
        -password: "mypassword"
        -auth_mode: null
        -esmtpParams: []
      }
    ]
    -capabilities: []
    -params: array:8 [
      "protocol" => "ssl"
      "host" => "mail.domain.com"
      "port" => 465
      "timeout" => 30
      "blocking" => 1
      "tls" => false
      "type" => 1
      "stream_context_options" => []
    ]

Изменено:

Swift_Mailer {#777
  -transport: ...
        ]
        -username: "myname@otherdomain.local"
        -password: "otherpassword"
        ...
      }
    ]
    -capabilities: []
    -params: array:8 [
      "protocol" => "tls"
      "host" => "mail.otherdomain.net"
      "port" => 888
      ...
    ]

1 Ответ

0 голосов
/ 19 февраля 2019

Не уверен, какую версию PHP вы используете, но на ум приходит клон .Обратите внимание, что объекты внутри объектов и т. Д. Могут быть проблемой в зависимости от того, настроена ли функция __clone для объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...