SimpleXMLElement: не получается присвоить массив в свойство (переменную) класса
Не получается присвоить результат explode свойстве класса. У меня есть следующий класс:
class MyXML extends SimpleXMLElement {
public array $orderFields;
public array $orderValues;
/* some methods */
public function setProperties(): void {
if (!isset($this->orderFields)) {
$this->orderFields = explode(',', $this->f[1]['v']);
$this->orderValues = explode(',', $this->f[0]['v']);
}
}
}
В консоли выполняю следующий код:
$s = '<?xml version="1.0" encoding="UTF-8"?>
<root>
<f v="chrom-to-eurotest,,1989,,60761200,1,"60761200",7,31,1"/>
<f v="formName,first_name,birth_year,middle_name,internal_nr,sex,last_name,birth_month,birth_day,f_ET-V22:b_Serum"/>
</root>';
$xml = simplexml_load_string($s, 'MyXML');
// var_dump($xml->orderFields);
$res = $xml->setProperties();
Получаю следующий ответ:
Fatal error: Uncaught TypeError: It's not possible to assign a complex type to properties, array given in MyXML
Если посмотреть значение orderFields - var_dump ($xml->orderFields), то показывает, что тип данных Объект MyXML вместо array.
В чем моя ошибка?
Источник: Stack Overflow на русском