Создайте переменную с помощью метода, возвращающего объект - PullRequest
0 голосов
/ 09 марта 2012

Я искал часы, но не могу понять, почему это не работает.Вот код

Моя цель - использовать другой метод для загрузки XML-документа и другой для печати и управления этим документом.

class ...

//Fetch and print xml document
    function fetchFromXMLDocument($XMLDocName) {
        $xmlDoc = new DOMDocument();
        $xmlDoc->load($XMLDocName);
        return $xmlDoc;

    }

Здесь я хочу добавить значениеот fetchFromXMLDocument() до моей $he переменной.но, похоже, не работает?

function printXml($XMLDocName) {
   //this seems not to be right??       
    $he = fetchFromXMLDocument($XMLDocName);

    //after that this is what I want to do..
    // $items = $he->getElementsByTagName("item");
         ...
    }

Кто-нибудь знает, почему это может быть?

Ответы [ 3 ]

0 голосов
/ 09 марта 2012

если он в классе, вам не нужно было бы делать

$he = $this->fetchFromXMLDocument($XMLDocName)
0 голосов
/ 09 марта 2012

Проблема в том, что функция fetchFromXMLDocument(); находится внутри класса.

Если метод, к которому вы обращаетесь к нему из printXML, относится к тому же классу, то вы должны обращаться к нему, используя оператор $this.

function printXml($XMLDocName) {    
     $he = $this -> fetchFromXMLDocument($XMLDocName);
     ...
}

Однако , если метод, к которому вы обращаетесь к нему из printXML, находится за пределами. Затем сначала вы должны создать и объект класса и получить к нему доступ.

function printXml($XMLDocName) {    
     $obj = new yourxmlclassname();
     $he = $obj -> fetchFromXMLDocument($XMLDocName);
     ...
}
0 голосов
/ 09 марта 2012

$xmlDoc - это объект DomDocument. Вы, вероятно, хотите:

$he = $xmlDoc->saveXML();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...