Я пытался использовать магический метод __set(), однако мне это не удалось. Похоже, что и конструктор, и магический метод __set() игнорируются.
Тип, определенный в документе WSDL:
Код: Выделить всё
...
Код: Выделить всё
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 ?? [];
}
}
}
Код: Выделить всё
$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
]
]);
Я что-то упустил? Или есть возможность сделать так, чтобы null интерпретировался как []?
Версия PHP — 7.3.7.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ed-classes