PHP SoapClient не вызывает магические методы сопоставленных классовPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP SoapClient не вызывает магические методы сопоставленных классов

Сообщение Anonymous »

Согласно документации, конструктор классов, сопоставленных с опцией classmap SoapClient, не вызывается, а вызываются магические методы __get() и __set() есть.
Я пытался использовать магический метод __set(), однако мне это не удалось. Похоже, что и конструктор, и магический метод __set() игнорируются.
Тип, определенный в документе WSDL: Соответствующий класс PHP:

Код: Выделить всё

class THpSvcWTableauClesRubriques {

/** @var int[] */
private $THpSvcWCleRubrique;

public function __get($name) {
if ($name === "THpSvcWCleRubrique") {
return $this->THpSvcWCleRubrique;
}
}

public function __set($name, $value) {
if ($name === "THpSvcWCleRubrique") {
$this->THpSvcWCleRubrique = $value ?? [];
}
}
}
И создание SoapClient:

Код: Выделить всё

$this->soapClient = new \SoapClient($this->url, [
"login" => $this->username,
"password" => $this->password,
"soap_version" => SOAP_1_2,
"features" => SOAP_SINGLE_ELEMENT_ARRAYS,
"classmap" => [
"THpSvcWTableauClesRubriques" => THpSvcWTableauClesRubriques::class
]
]);
Моя проблема заключается в том, что если в массиве нет элемента, веб-служба SOAP возвращает значение null, и вместо этого я хотел бы интерпретировать его как []. Поскольку волшебный метод не вызывается, у меня все еще есть null вместо [].
Я что-то упустил? Или есть возможность сделать так, чтобы null интерпретировался как []?

Версия PHP — 7.3.7.

Подробнее здесь: https://stackoverflow.com/questions/784 ... ed-classes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»