0

全て、

PHPLint を使用して、作成中の PHP スクリプトを評価していますが、次のエラーが返されます。

「エラー: プロパティ `SimpleXMLElement::$error' が存在しないか、表示されません」.

参照されているコードは次のようになります。

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

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

_xmlResponse は、次のように宣言されたクラス変数です。

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

SimpleXMLElement クラスが機能する方法は、-> 演算子を使用して名前で XML 要素を参照することです。したがって、SimpleXMLElement オブジェクトの「エラー」要素を参照しています。

次のようなエラーも表示されます。

エラー: `->' 演算子が混合型の値に適用されました

次のような要素にアクセスする場合:

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

コードは正常に動作しますが、PHPLint ではまだエラーが発生します。PHPLint リファレンス マニュアルを調べましたが、PHPLint が SimpleXMLElement を解析できないのか、それともこれが本当に潜在的な問題なのかがわかりません。誰でもこのPHPLintエラーを説明できますか? おそらく、私が行う必要のある型キャストがいくつかありますか?

4

1 に答える 1

0

あなたは2つの別々の問題を提起しました。まず、SimpleXMLElement (PHP 5.3.6 以降) には error 属性がありません。こちらのドキュメントを参照してください。コンストラクターのドキュメントを読むと、エラーを検出する正しい方法は、コンストラクターによってスローされた例外をキャッチすることであることがわかります。2 番目のエラーは、PHPLint で使用される @mixed PHPDocumentor アノテーションを持つ $status (または $status->user) に発生する可能性が最も高いです。アノテーションを @object に変更すると、問題が解決するはずです。

于 2011-06-16T17:27:55.950 に答える