SimpleXMLElement: не получается присвоить массив в свойство (переменную) класса

Рейтинг: 0Ответов: 0Опубликовано: 12.06.2023

Не получается присвоить результат 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,&quot;60761200&quot;,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.

В чем моя ошибка?

Ответы

Ответов пока нет.