ОШИБКА PHPLint: свойство `SimpleXMLElement :: $ error 'не существует или не отображается - PullRequest
0 голосов
/ 16 июня 2011

All

Я использую PHPLint для оценки написанного сценария PHP, и он возвращает следующую ошибку:

"ОШИБКА: свойство` SimpleXMLElement :: $ error 'не существует или не отображается ".

Код, на который ссылаются, выглядит следующим образом:

$this->_xmlResponse = new SimpleXMLElement($resultString);

if (($this->_xmlResponse !== NULL) && ($this->_xmlResponse->error))

И _xmlResponse - переменная класса, объявленная так:

private /*. SimpleXMLElement .*/ $_xmlResponse = NULL;

Принцип работы класса SimpleXMLElement заключается в том, что вы обращаетесь к элементу XML по имени с помощью оператора ->. Поэтому я имею в виду элемент error из моего объекта SimpleXMLElement.

Я также получаю ошибки, подобные этой:

ОШИБКА: оператор `-> 'применяется к значению смешанного типа

При доступе к таким элементам:

print ' by ' . htmlentities($status->user->screen_name) . '</h6>';

Код работает нормально, но PHPLint по-прежнему выдает ошибки. Я просмотрел справочное руководство по PHPLint, но не могу понять, не может ли PHPLint выполнить синтаксический анализ SimpleXMLElement или это действительно потенциальная проблема. Кто-нибудь может объяснить эту ошибку PHPLint? Может быть, мне нужно выполнить кастинг типов?

1 Ответ

0 голосов
/ 16 июня 2011

Вы подняли два отдельных вопроса.Во-первых, SimpleXMLElement (с PHP 5.3.6) не имеет атрибута ошибки.Смотри документацию здесь .Если вы прочтете документацию конструктора, то увидите, что правильный способ обнаружения ошибки - перехватить исключение, выданное конструктором.Вторая ошибка, скорее всего, связана с $ status (или $ status-> user), имеющим аннотацию @mixed PHPDocumentor, которая используется PHPLint.Изменение аннотации на @object должно решить вашу проблему.

...